在生产环境中部署 TypeScript Node.js 应用程序,无需使用 docker

nfl*_*aig 8 deployment production node.js typescript

目前在生产中部署 TypeScript Node.js 应用程序而不使用 docker 的最佳实践是什么?

在使用 git 的情况下,存在一个问题,您需要安装所有依赖项才能构建项目,因为通常需要安装为 devDependency 的类型。这也意味着您安装用于测试、检查等的模块,而这些在生产中根本不需要。

我正在考虑将所有类型添加为依赖项,然后允许运行npm install --production以避免安装所有 devDependency 并且仍然能够通过运行来构建项目npm run build

我正在考虑的另一个解决方案是通过 npm 进行部署,类似于 TypeScript 节点模块的发布和安装方式,但该解决方案似乎也不是最优的。

pav*_*vle 4

为什么要将所有类型添加为依赖项?没有必要,您的生产应用程序不应包含所有开发依赖项。通常,当运行该npm run build命令时,tsc会执行(typescript 编译器)并将 typescript 代码转换为 javascript。您不需要将所有开发依赖项都包含在转译代码中。转译代码的默认位置通常是dist文件夹。如果您的应用程序入口点是src/index.ts,那么在构建命令之后您应该调用node dist/index.js来运行服务器。现在,打包应用程序以进行生产所需的一切都是文件夹package.json中的转译代码dist。安装 prod 依赖项并运行node dist/index.js,您的服务器应该成功运行。当然,您应该考虑为您的生产代码配置PM2或类似的流程管理器。