3 votes

Comment empêcher le live-reload de s'exécuter sur tous les fichiers dans Angular2 avec angularCLI ?

Environnement :

Angular 2.0.0 (construit via Angular CLI Beta 15 avec Webpack)

Question :

Pas de moyen d'éteindre Téléchargement en direct . Mon application comporte plusieurs zones où les fichiers doivent être téléchargés vers le serveur et/ou être manipulés. Chaque fois que l'une de ces actions se produit, mon application redémarre, ce qui rend presque impossible les tests et la poursuite du développement.

Résolution idéale :

Je veux vraiment trouver un moyen de désactiver le rechargement à chaud. Si ce n'est pas possible en utilisant AngularCLI, j'ai besoin de savoir si cela vaut la peine de reconstruire l'application sans CLI.

Avant Webpack (avec AngularCLI Beta 10), j'étais capable d'éviter ce problème en exécutant Angular avec cette commande :

De paquet.json

"angular-start": "ng serve --live-reload false",

Cela ne fonctionne plus avec la version actuelle d'Angular CLI.

Mise à jour :

La réponse acceptée est excellente, à l'exception d'un problème mineur. Pour une raison quelconque, lorsque l'application est lancée de cette façon, je ne peux pas charger les pages directement (c'est-à-dire http://172.16.1.213:4200 fonctionne, et si je navigue vers ma route d'actifs, je vois http://172.16.1.213:4200/assets dans le navigateur. Mais si je mets http://172.16.1.213:4200/assets dans le navigateur directement et appuyez sur la touche entrée, je reçois "Cannot get assets" )

En outre, si je télécharge une nouvelle image ou une nouvelle vidéo dans l'application lorsqu'elle est lancée de cette manière, je ne peux pas voir l'image ou la vidéo avant de l'actualiser.

Je pense que c'est dû à la nature de Webpack qui veut regrouper toutes ces images/vidéos. Je ne comprends pas comment cela pourrait fonctionner en production alors que de nouveaux fichiers doivent être téléchargés en permanence.

1voto

John Siu Points 4229

Une simple application node peut servir le contenu Angular-cli /dist.

  1. Mettre à la suite server.js dans le dossier de votre projet

    const port = 4000;
    const ip = "0.0.0.0";
    const dist = __dirname + '/dist';
    
    // Express
    const express = require('express');
    
    express()
        // Static content
        .use(express.static(dist))
        // SPA routing
        .get('/*', (req, res) => res.sendFile(__dirname, '/dist/index.html'))
        // Start server
        .listen(port, ip, function () {
            console.log(ip + ':' + port);
        });
  2. Installer expressjs

    npm i express
  3. Créez votre application*.

    ng build
  4. Démarrer le serveur

    node server.js
    • Répétez l'étape 3 chaque fois que vous terminez le chargement.

0voto

mapm Points 468

Ce drapeau n'est pas implémenté dans la version webpack, voir https://github.com/angular/angular-cli/issues/1755 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X