我是Angular 2的新手。我对Angular 2在生产环境中的工作方式感到困惑。
在生产服务器中运行Angular 2应用程序的先决条件是什么?
是否可以在IIS服务器中部署应用程序或是否需要节点服务器?
使用节点在开发机器中编译文件后,我们是否需要将.js和.ts部署到生产中?
答案 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)
在制作时上传应用非常简单。 步骤进行:
如果您的应用有路由器,那么请不要忘记使用{useHash:true}来防止错误无法加载页面。喜欢:
RouterModule.forRoot(routes,{useHash:true})
在项目根路径中键入npm build。
答案 4 :(得分:3)
npm install -g angular-cli
&#34;)如果您使用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文件。
完成开发后,您需要做的就是使用dist
或webpack-starter
之类的捆绑工具制作angular2-seed
目录包。
然后将此捆绑包部署到您的服务器。
上述软件包提供了大量有关如何将angular2应用程序部署到生产环境的信息。
希望这有帮助。