我有一个需要在 CPanel 上托管的 MEAN Stack 应用程序,但我以前从未部署过应用程序。通过使用以下命令在 dist 文件夹中创建一个包,可以轻松部署应用程序的 Angular 部分:
ng build --prod
但我想知道我应该如何在服务器上发布我的后端代码。是否有任何命令/命令可以像 Angular 一样创建一个缩小的包?
我还想知道我是否需要安装一些 npm 包来确保我的应用程序在服务器上顺利运行?就像我在谷歌上搜索有关部署 nodejs 时一直在阅读有关 PM2 和 Nginx 的内容一样。那么它们有什么好处呢?
请提及任何可能有用的文章或视频。
角度版本 7
节点版本 8.11.3
Ubuntu 16.04
您可以按原样部署代码,它会起作用!
您不需要缩小代码。VM 的速度足以运行它。当从服务器向客户端发送文件时,通常会进行缩小以减小文件的大小,并且由于您没有发送任何文件,因此您无需担心。
一旦您达到生产状态,我建议使用PM2来管理 Node 进程。它包括日志、自动重启和许多可以帮助你的酷功能。
如果您担心node_modules
目录的大小,也许您可以确定仅在开发过程中使用了哪些包(例如,测试工具如 Jest 和 Mocha,转译器如 Babel、Typescript 等)。将这些放在文件中的"devDependency"
密钥中package.json
。然后,在生产中运行npm install --production
,它不会安装您列为devDependency
. 那应该产生更小的node_modules
.
如果您遵循十二个因素,那么还要为生产专用凭证创建一个环境文件。
为了完整起见,如果您使用 Babel/Typescript 或任何其他类似的工具,那么您确实需要将项目转换为 Node 可以理解的 Javascript 代码。运行相应的命令以生成生产版本。
关于Nginx,有些人喜欢将Nginx作为反向代理,让它为静态资产服务,而对于API请求,则将其转发给Node API。这是“最佳实践”,因为 Nginx 可以轻松调整以更快地为静态资产提供服务,并且包括缓存、安全保护等多个选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句