Angular2部署到生产环境的问题

3

如何将Angular2 Web项目部署到生产环境的一些问题

  1. 我们在Lite服务器上进行开发,但是在生产环境中最好使用什么?是否是Node.js的其他服务器模块?从技术上讲,我们可以有任何服务器(如Apache、Tomcat等)。
  2. 在以下情况下,我们应该如何管理源代码。
    • 浏览器必须包括JS文件,因此在部署时项目应该具有JS文件
    • 在标准Java项目中,我们只需提交.java文件,并使用Jenkins(也可能是其他工具)编译并创建可部署结构
    • 我们应该遵循同样的策略吗?即不提交已编译的js文件,并使用某个node编译器来将ts文件编译为js
  3. 最佳的压缩/混淆js文件的方法是什么?
    • 我知道一种使用outDir和outFile与grump的方法,但我不希望每个文件都被包含在一个压缩文件中,因为这会破坏懒加载的概念
    • 有没有一种在编译时压缩和混淆js文件的方法?
  4. enableProdMode()是什么?它与不使用有何不同?

不能对上述所有内容发表评论,但我从lite-server改为express非常容易。使用Node,您始终可以编写自己的服务器而无需使用Node模块。 - user2263572
1个回答

1
这是您问题的一些答案:

  1. Angular2应用程序仅由静态文件组成,因此它们可以由任何静态Web服务器或可以定义静态文件夹(Express等)的服务器应用程序提供服务。

  2. 关于源代码管理,您必须有一个打包阶段来优化应用程序加载(收集文件,uglify等)。您的源代码必须包含TypeScript文件(如果使用ES5或ES6,则为JS文件)。例如,可以使用Gulp进行此类打包。您的Jenkins服务器将能够检出源代码,构建它并执行测试。

  3. 实际上,如果不使用TypeScript编译器的outFile属性,则无法将所有编译后的JS文件收集到单个文件中,因为每个JS文件中都会创建匿名模块。

    有关此问题的更多详细信息,请参见此问题:

  4. 关于生产模式,以下是文档的摘录:

    禁用Angular的开发模式,从而关闭框架内的断言和其他检查。

    这种禁用的重要断言验证变更检测通过不会导致任何绑定的额外变更(也称为单向数据流)。


我正在使用AOT编译器与Apache HTTP服务器进行生产,而在开发中则使用JIT编译器和Lite服务器。 - Akshay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接