如何将TypeScript中开发的Angular 2应用程序部署到生产环境中?
我是Angular 2的新手。我对Angular 2如何在生产环境中工作感到困惑。
-
在生产服务器上运行Angular 2应用程序有哪些先决条件?
-
可以在IIS服务器上部署应用程序,还是需要节点服务器?
-
使用节点在开发机器中编译文件之后,是否需要将.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
上传应用程序非常简单。 脚步:
- 使用https://angular.io/docs/ts/latest/guide/webpack.html创build一个应用程序;
- 如果你的应用程序有路由器,那么不要忘记使用{useHash:true}来防止错误无法加载页面。 如: RouterModule.forRoot(routes,{useHash:true}) 。
- 在项目根path中键入npm build。
- 它会在项目根目录中自动创builddist文件夹。
- 不需要在生产环境中设置节点服务器。 你可以简单地selectApache服务器并上传dist文件夹内容。
- 一个应用程序服务器(用于我的答案,我使用了Tomcat),node.js和angular-cli(通过运行“
npm install -g angular-cli
”) - 您可以部署到其他服务器
- 只是.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应用程序部署到生产环境的信息。
希望这可以帮助。