如何将在Typescript中开发的Angular 2应用程序部署到生产中?

时间:2015-12-22 02:16:41

标签: angular

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

  1. 在生产服务器中运行Angular 2应用程序的先决条件是什么?

  2. 是否可以在IIS服务器中部署应用程序或是否需要节点服务器?

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

6 个答案:

答案 0 :(得分:17)

我使用JSPM使我的angular2项目生产准备就绪。其他流行的工具,如JSPM,包括webpack和browserfy。 JSPM将完成的一项重要任务是捆绑构成angular2项目的各种模块。我还将“selfExecutingBundle”标志设置为true,并让JSPM生成一个捆绑的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>

这就是你所需要的!

将来,当HTTP / 2规范更常见时,可能不需要捆绑基于模块的项目,但是现在我认为需要捆绑。

没有引用您的打字稿文件(因为它们已经在制作myApp.bundled.js的过程中被编译)。正如Zama所说,你可以在任何服务器上运行angular2(我使用IIS并且工作正常)。

更新:自Angular 2的最终版本发布以来,我已经转而使用angular-cli进行生产。设置很简单(没有吞食任务的意大利面条),最终的捆绑是超级优化的(特别是由于树木摇晃)。我建议检查angular-cli,以便设置,开发和构建你的ng2项目。

答案 1 :(得分:8)

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

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

您只需部署.js文件,因为浏览器无法解析.ts文件。

答案 2 :(得分:3)

有许多入门种子项目,包括服务和构建项目的能力。 我正在使用(并且非常满意)https://github.com/antonybudianto/angular2-starter

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

答案 3 :(得分:3)

在制作时上传应用非常简单。 步骤进行:

  1. 使用关注https://angular.io/docs/ts/latest/guide/webpack.html
  2. 创建应用
  3. 如果您的应用有路由器,那么请不要忘记使用{useHash:true}来防止错误无法加载页面。喜欢:

    RouterModule.forRoot(routes,{useHash:true})

  4. 在项目根路径中键入npm build。

  5. 它会在项目根目录中自动创建dist文件夹。
  6. 不需要在生产时设置节点服务器。您只需选择apache服务器并上传dist文件夹内容即可。

答案 4 :(得分:3)

  1. 应用程序服务器(我的答案,我使用过Tomcat),node.js和angular-cli(通过运行&#34; npm install -g angular-cli&#34;)
  2. 您可以部署到其他服务器
  3. 只是.html,.js和.map文件(至少对我的解决方案而言)
  4. 如果您使用angular-cli instructions shown here创建了应用程序,则效果会更好。在应用程序根目录中,运行以下命令ng build --env=prod,它将通过webpack捆绑\dist目录中的可部署项。

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

    <base href="/foo/">
    

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

    注意:如果您没有使用ng new命令创建项目,我已经阅读了在构建之前执行ng init将允许您仍然按照步骤操作的位置。我自己没有测试过这个。

答案 5 :(得分:1)

所有打字稿文件将在转换器开发应用程序时被转换为js文件,因此您不需要生产中的ts文件。

完成开发后,您需要做的就是使用distwebpack-starter之类的捆绑工具制作angular2-seed目录包。

然后将此捆绑包部署到您的服务器。

上述软件包提供了大量有关如何将angular2应用程序部署到生产环境的信息。

希望这有帮助。