使用pm2,我想部署用打字稿编写的节点应用。
这个应用程序的仓库位于git上,远程机器与git建立了ssh连接。
在这种情况下,部署的标准工作流程是什么?
在git仓库中,当然只有源代码(未编译), 理想情况下,只有已编译的文件(没有.ts文件)将位于服务器上。
应该在什么阶段进行编译?在哪里?
如果你们中的某些人遇到这种情况并得到了一个实际的例子,对此有一个具体的配置,那将非常有帮助
注意:
使用heroku,我只在"postinstall": "npm run build"
中添加了一个package.json
脚本,并生成了一个web: npm start
这样的Procfile,
由于某种原因,在这种情况下事情变得更加复杂。
此外,该部署是在具有标准环境(node,git,pm2 global以及需要时所有打字稿依赖项等)的标准环境下部署到Ec2 linux实例的。
答案 0 :(得分:0)
理想情况下,您使用travis-CI或gitlab-CI之类的构建服务器来构建,测试和部署源。
我最近问了similar question,并最终建立了以下管道:
npm install
安装node_modules
* dist
文件夹中npm prune --production
从node_modules
移除开发依赖项scp
将dist
和node_modules
复制到产品服务器ssh
从早期的部署中删除文件,并告诉pm2重新加载server.js
*请注意,如果您使用的模块使用本机代码并因此在npm_install
(node-gyp)上进行编译,则必须确保构建服务器使用与生产环境相同的体系结构