如何在输出目录中使用TypeScript包含node_modules

我想知道是否可以在运行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 

怎么能实现呢?

非常感谢!

你应该可以把目录覆盖。 如果你想自动化它,你可以在你的package.json中用npm脚本包装你的tsccp调用:

 { "scripts": { "build": "tsc <your command line options>", "postbuild": "cp -R node_modules lib/node_modules" } } 

然后当你使用npm run build你的cp命令也应该自动运行。

为此,我创build了一个简单的吞咽任务。

gulpfile.js:

 var gulp = require('gulp'); var install = require('gulp-install'); const PROD_DEST = '../dist'; gulp.task('default', function () { return gulp.src(['./package.json']) .pipe(gulp.dest(PROD_DEST)) .pipe(install({ args: ['only=production'] })); }); 

package.json

 ... "scripts": { "build:prod": "tsc && gulp" } "devDependencies": { "gulp": "^3.9.1", "gulp-install": "^0.6.0", }, ... 

这样我就可以运行npm run build:prod将TypeScript源代码转换成PROD_DEST
npm install --only=productionpackage.json复制到该文件夹​​中,并在其中运行npm install --only=production来安装运行时依赖项
如果你有很多devDependencies和独立的平台,这种方法更清洁