我想知道是否可以在运行 tsc 命令后将 node_modules 文件夹复制到输出目录。
我的情况是我有一个带有 TypeScript 的项目并使用了一些 npm 包。我需要我的输出目录具有所有 npm 依赖项,因为我需要压缩它并通过 http 发送(到 AWS Lambda)。
我的项目结构是这样的:
|-.vscode --> visual studio code
|-lib --> output dir
|-node_modules --> npm dependencies
|-src --> .ts files
|-jsconfig.json
|-tsconfig.json
如何实现?
非常感谢!
最佳答案
我喜欢Peopleware's解决方案比公认的解决方案多得多,但您甚至不需要为此大吃一惊。您可以在 package.json 中简单地执行此操作:
{
"scripts": {
"build": "tsc <your command line options>",
"postbuild": "cp package.json dist/package.json && cd dist && npm install --only=production"
}
}
这样做的好处是您不会复制整个 node_modules
文件夹,因为它可能有大量仅在开发期间使用的依赖项。
您可以对静态 Assets (例如图像)执行相同的操作,或者不使用:
"copy-statics": "cp -r static dist/static"
更新:与其使用 npm install --only-production
,不如复制 package.json
和 package-lock.json
然后运行 npm ci --production
。这可确保您只安装 package-lock.json
中的依赖快照。所以命令看起来像这样:
"postbuild": "cp package*.json dist && cd dist && npm ci --production"
关于node.js - 如何使用 TypeScript 在输出目录中包含 node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109461/