如何将TypeScript中开发的Angular 2应用程序部署到生产环境中?

我是Angular 2的新手。我对Angular 2如何在生产环境中工作感到困惑。

  1. 在生产服务器上运行Angular 2应用程序有哪些先决条件?

  2. 可以在IIS服务器上部署应用程序,还是需要节点服务器?

  3. 使用节点在开发机器中编译文件之后,是否需要将.js和.ts两个文件部署到生产环境?

我使用JSPM来准备我的angular2项目。 其他stream行的工具,如JSPM包括webpack和browserfy。 JSPM将要完成的重要任务之一是捆绑组成您的angular2项目的各个模块。 我还将“selfExecutingBundle”标志设置为true,并让JSP生成一个绑定的js文件(例如myApp.bundled.js),然后从这里将它缩小(myApp.bundled.min.js),并在这个脚本引用中使用index.html文件。

<html> <head> <title>Hello Angular World</title> </head> <body> <div> <my-app>Loading...</my-app> </div> <script src="/js/myApp.bundle.min.js"></script> </body> </html> 

Angular 2应用程序是用TS编写的,但浏览器最后只能理解JavaScript。 所以任何TS项目在开发的时候都会被转换成JavaScript的第一个事件。

您可以在任何服务器上运行angular度2应用程序。

你只需要部署.js文件,因为浏览器不会parsing.ts文件。

有许多启动种子项目,包括服务和build立您的项目的能力。 我正在使用(并非常高兴) https://github.com/antonybudianto/angular2-starter

你可以在这里find许多其他人: https : //github.com/timjacobi/angular2-education#boilerplates

上传应用程序非常简单。 脚步:

  1. 使用https://angular.io/docs/ts/latest/guide/webpack.html创build一个应用程序;
  2. 如果你的应用程序有路由器,那么不要忘记使用{useHash:true}来防止错误无法加载页面。 如: RouterModule.forRoot(routes,{useHash:true})
  3. 在项目根path中键入npm build。
  4. 它会在项目根目录中自动创builddist文件夹。
  5. 不需要在生产环境中设置节点服务器。 你可以简单地selectApache服务器并上传dist文件夹内容。
  1. 一个应用程序服务器(用于我的答案,我使用了Tomcat),node.js和angular-cli(通过运行“ npm install -g angular-cli ”)
  2. 您可以部署到其他服务器
  3. 只是.html,.js和.map文件(至less对于我的解决scheme)

如果您使用此处显示的 angular-cli 指令创build了应用程序,这会更好。 在您的应用程序根目录中,运行以下命令ng build --env=prod并通过webpack将\dist目录中的可部署项目捆绑在一起。

复制\dist目录并将其粘贴到{CATALINA_HOME}\webapps 。 将\dist重命名为\foo等文件夹名称。 打开\foo\index.html并编辑base-href行以表示您的新目录名称:

 <base href="/foo/"> 

通过startup.bat或者您select的首选项启动Tomcat并导航到http:// localhost:8080 / foo / ,您应该能够查看您的Angular 2应用程序。

注意:如果你没有使用ng new命令创build项目,我已经阅读了执行ng init然后build将允许你继续执行这些步骤。 我自己虽然没有testing过。

所有打字稿文件将被转译成js文件,同时由转译器开发应用程序,所以你不需要生产中的ts文件。

另外当你完成开发时,你需要做的是使用一些捆绑工具(如webpack-starter或者angular2-seed制作dist目录的捆绑包。

然后你将这个包部署到你的服务器。

上面提到的软件包有很多关于如何将angular2应用程序部署到生产环境的信息。

希望这可以帮助。