2017-10-17 8 views
0

J'ai une application angulaire 4 qui est mise en place dans Nanobox.Comment rendre angulaire 4 recharger en direct pour pointer vers la bonne adresse?

Sur la machine locale, il fonctionne sur localhost:4200 sur le Nanobox Je l'exécute sur http://172.21.0.5:4200/ selon la suggestion de Nanobox.

Lorsque la charge d'application dans http://172.21.0.5:4200/ je reçois cette erreur: zone.js:2933 GET http://localhost:4200/sockjs-node/info?t=1508200471270 net::ERR_CONNECTION_REFUSED

Cette erreur ne se produit pas dans Localhost, et à cause de cette erreur mon reload en direct ne fonctionne pas.

Merci d'avance.

Modifier

Il est l'environnement de dev. Je dois d'une manière ou d'une autre dire à un observateur de fichier angulaire de communiquer avec http://0.0.0.0:4200 ou http://172.21.0.5:4200

Je ne sais pas où est le script angulaire de rechargement en direct. Je ne trouve rien en ligne non plus. Je pensais que c'était Webpack, mais je ne trouve rien à ce sujet.

+0

Le rechargement en temps réel est une fonctionnalité de temps de développement, ce n'est pas quelque chose que vous utilisez en production pour mettre à jour votre application. –

+0

Je ne l'utilise pas dans la production. Nanobox est mon environnement de développement. –

+0

Alors pourquoi? localhost sera plus rapide. –

Répondre

0

Selon la compréhension vous vouliez exécuter l'application angulaire sur la machine client, de le faire suivre 3 étapes simples

1) permettent prod mode-

import { enableProdMode } from '@angular/core'; 

// Enable production mode unless running locally 
if (!/localhost/.test(document.location.host)) { 
    enableProdMode(); 
} 

2) Construire une application dans la base mode- prod sera défini dans index.html pour naviguer dans tous les fichiers CSS et js ng build prod --base = "/ folderName /"

3) déployer le dossier dist et explorer.

+0

Je n'ai pas besoin du mode Prod car c'est un serveur de dev. Nanobox est comme Docker. Je dois en quelque sorte dire à mon rechargement en direct de communiquer avec 'http: //0.0.0.0: 4200' –

0

Après beaucoup de creusement, il n'y a pas de réponse claire à cela.

Voici ma solution Nanobox:

Saisissez l'Adresse IP Nanobox suggère:

enter image description here

Ensuite, utilisez ng serve -host 172.21.0.5 ce qui devrait contourner la question de livereload.

Également dans votre boxfile.yml assurez-vous d'utiliser fs_watch: true.

Nanobox est à la recherche à 0.0.0.0 de sorte que vous devez vous assurer dans votre angular-cli.json dans la section par défaut ajouter:

"defaults": { 
    "styleExt": "scss", 
    "component": {}, 
    "serve": { 
     "port": 4200, 
     "host": "0.0.0.0" 
    } 
    } 

Cela devrait le faire.