You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript(Node.js)生产部署最佳实践:项目部署文件选择问询

TypeScript项目生产部署的文件选择方案

先明确你的场景:
初始TS项目结构:

node_modules/
src/
| app.ts
package.json
tsconfig.json

执行基础构建后,项目结构新增了编译后的dist目录:

dist/
| app.js
node_modules/
src/
| app.ts
package.json
tsconfig.json

部署文件选择原则

不需要把所有文件都打包部署,核心是只保留生产运行必需的内容:

  • 必须包含:
    • dist/目录:里面是编译后的JS产物,这是项目运行的核心代码
    • 精简后的package.json:要调整配置,把main字段指向dist/app.js,只保留dependencies(生产依赖),删掉devDependencies(比如TypeScript、ts-node这类开发工具)
  • 绝对不要包含:
    • src/:TS源码属于开发产物,生产环境不需要
    • node_modules/:依赖包在部署时通过npm install --production重新安装即可,打包进去会大幅增加体积
    • tsconfig.json:这是开发阶段的编译配置,生产环境用不上

针对本地库依赖问题的优化

你提到把package.json放进dist作为独立包时,难以引入本地库,这里给两个可行方案:

  1. 先把本地库打包成可发布的包(比如用tsc编译后生成自己的dist和package.json),部署时在项目的package.json里通过相对路径或者私有仓库地址依赖这个本地库的编译产物
  2. 如果是同项目内的多包结构,用TypeScript的project references配置,构建时自动把依赖的本地库产物同步到项目的dist目录,避免部署时依赖源码

推荐的部署流程

  1. 构建时用工具(比如tsup、rollup)自动完成:编译TS到dist,复制精简后的package.json到dist,剔除dev依赖
  2. 把dist目录作为部署包上传到服务器
  3. 在服务器执行npm install --production安装生产依赖
  4. 启动服务(比如node dist/app.js)

内容的提问来源于stack exchange,提问作者Nathanaël Spriet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:50:36