如何使用angularCLI停止在Angular2中的所有文件上执行实时重载?

时间:2016-10-03 21:53:00

标签: angular webpack livereload

环境:

Angular 2.0.0(通过Angular CLI Beta 15和Webpack构建)

问题:

无法关闭 实时重新加载 。我的应用程序涉及多个区域,其中文件需要上传到服务器,和/或被操纵。每次发生这些操作时,我的应用程序都会重新启动,几乎无法测试并继续开发。

理想解决方案:

我真的想找到一种方法来禁用实时重新加载。如果使用AngularCLI是不可能的,我需要知道在没有CLI的情况下重建应用程序是值得的。

Pre-Webpack(使用AngularCLI Beta 10)我曾经能够通过使用此命令运行angular来防止此问题:

来自 package.json

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

这不再适用于当前版本的Angular CLI。

更新

除了一个小问题外,接受的答案很好。出于某种原因,当应用程序以这种方式启动时,我无法直接加载页面(即http://172.16.1.213:4200有效,如果我导航到我的资产路径,我会在浏览器中看到http://172.16.1.213:4200/assets。但是如果我直接在浏览器中输入http://172.16.1.213:4200/assets并点击输入我得到"无法获取资产")

此外,如果我以这种方式发布新的图片或视频到应用程序,我无法看到图像或视频,直到刷新。

我的猜测是,这是因为Webpack的性质想要捆绑所有这些图像/视频。我很困惑,当需要一直上传新文件时,这在生产中是如何工作的

2 个答案:

答案 0 :(得分:1)

简单的节点应用可以提供Angular-cli / dist内容。

  1. 将以下server.js放入项目文件夹

       
    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. 安装expressjs

    npm i express
    
  3. 构建您的应用*

    ng build
    
  4. 启动服务器

    node server.js
    
    • 每次完成加载时重复步骤3.

答案 1 :(得分:0)

此标志未在webpack版本中实现,请参阅https://github.com/angular/angular-cli/issues/1755