在没有 docker 的情况下在生产中部署 TypeScript Node.js应用程序



在没有 docker 的情况下在生产中部署 TypeScript Node.js 应用程序的当前最佳实践是什么?

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

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

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

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

最新更新