如何在输出目录中使用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脚本包装你的tsc
和cp
调用:
{ "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=production
将package.json
复制到该文件夹中,并在其中仅运行npm install --only=production
来安装运行时依赖项 。
如果你有很多devDependencies和独立的平台,这种方法更清洁 。