2016-04-06 72 views
3

一些问题把angular2 Web项目的生产环境Angular2部署到生产环境中的问题

  1. 我们做开发精简版的服务器上,但生产什么是最好的?是nodejs的其他服务器模块?技术上我们可以有任何服务器(Apache,Tomcat等)。
  2. 我们应该如何为以下上下文做源代码管理。
    • 浏览器必须包括js文件,以便部署
    • 在标准的Java项目,我们只是犯.java文件,并使用詹金斯(可能是其他工具),汇编并部署-能结构的项目应该有JS文件
    • 我们应该在这里遵循相同的策略吗?即不要犯编译js文件,并使用一些node编译这需要ts文件和编译部署到js的
  3. 什么是来缩小/混淆js文件
    • 我知道一种方法的最佳途径使用outDiroutFilegrump但我不希望每个文件都包含在一个缩小文件中,因为它杀死了延迟加载的概念
    • 有没有在编译时缩小和混淆js文件的方法?
  4. enableProdMode()是做什么用的?它与不使用它有何不同?
+0

无法在上述所有的评论,但我从精简版服务器的改变来表达,这是一个很简单的过渡。使用节点,您可以始终编写自己的服务器而无需使用节点模块。 – user2263572

回答

1

这里有一些问题的答案:

  1. Angular2应用程序只包括静态文件,以便他们可以通过任何静态Web服务器或服务器应用程序,可以定义静态文件夹(快递服务。 ..)

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

  3. 事实上,当不使用TypeScript编译器的outFile属性时,由于匿名模块将在每个JS文件中创建,因此无法将所有JS编译文件收集到一个文件中。

    看到这个问题的的更多细节:

  4. 关于督促模式,这里是文件的摘录:

    禁用角的发展模式,这会关闭框架内的断言和其他检查。

    此禁用的一个重要断言验证更改检测传递不会导致对任何绑定(也称为单向数据流)进行其他更改。

+0

我正在使用的是AOT编译器,带有用于PROD和JIT编译器的Apache HTTP服务器以及用于开发的lite-server – Akshay