PM2的Typescript节点应用程序部署过程

时间:2019-01-31 07:07:31

标签: node.js typescript deployment server pm2

使用pm2,我想部署用打字稿编写的节点应用
这个应用程序的仓库位于git上,远程机器与git建立了ssh连接。

在这种情况下,部署的标准工作流程是什么?

在git仓库中,当然只有源代码(未编译), 理想情况下,只有已编译的文件(没有.ts文件)将位于服务器上。

应该在什么阶段进行编译?在哪里?

如果你们中的某些人遇到这种情况并得到了一个实际的例子,对此有一个具体的配置,那将非常有帮助

注意:
使用heroku,我只在"postinstall": "npm run build"中添加了一个package.json脚本,并生成了一个web: npm start这样的Procfile,
由于某种原因,在这种情况下事情变得更加复杂。

此外,该部署是在具有标准环境(node,git,pm2 global以及需要时所有打字稿依赖项等)的标准环境下部署到Ec2 linux实例的。

1 个答案:

答案 0 :(得分:0)

理想情况下,您使用travis-CI或gitlab-CI之类的构建服务器来构建,测试和部署源。
我最近问了similar question,并最终建立了以下管道:

  • 构建阶段:
    • npm install安装node_modules *
    • 将打字稿编译到dist文件夹中
  • 测试阶段:
    • 起绒(尽管有些人建议在建筑物前安装
    • 其他代码检查
    • 单元测试
  • 部署:(仅在主分支上)
    • npm prune --productionnode_modules移除开发依赖项
    • 使用scpdistnode_modules复制到产品服务器
    • 使用ssh从早期的部署中删除文件,并告诉pm2重新加载server.js

*请注意,如果您使用的模块使用本机代码并因此在npm_install(node-gyp)上进行编译,则必须确保构建服务器使用与生产环境相同的体系结构