【问题标题】:Typescript node app deployment process with pm2使用 pm2 的 Typescript 节点应用程序部署过程
【发布时间】:2019-06-24 14:10:38
【问题描述】:

使用 pm2 我想部署一个用 typescript 编写的节点应用程序
该应用程序的存储库位于 git 上,远程机器与 git 建立了 ssh 连接。

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

在 git repo 上当然只有源代码(未编译), 理想情况下,只有编译好的(没有 .ts 文件)会放在服务器上。

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

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

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

此外,部署是 Ec2 linux 实例,具有标准环境(节点、git、pm2 全局以及所有 typescript 依赖项(如果需要)等)

【问题讨论】:

    标签: node.js typescript deployment server pm2


    【解决方案1】:

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

    • 构建阶段:
      • npm install 安装 node_modules *
      • 将 typescript 编译到dist 文件夹
    • 测试阶段:
      • linting(虽然有些人推荐这个before构建)
      • 其他代码检查
      • 单元测试
    • 部署:(仅在主分支上)
      • npm prune --productionnode_modules 中删除开发依赖项
      • 使用scpdistnode_modules 复制到生产服务器
      • 使用ssh从早期部署中删除文件并告诉pm2重新加载server.js

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-27
      • 2018-09-07
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多