如何从gulp任务中运行npm脚本命令?
package.json
"scripts":
{
"tsc": "tsc -w"
}
gulpfile.js
gulp.task('compile:app', function(){
return gulp.src('src/**/*.ts')
.pipe(/*npm run tsc*/)
.pipe(gulp.dest('./dist'))
.pipe(connect.reload());
});
我想这样做是因为运行
npm run tsc
不会给我任何错误,但是如果我使用gulp-typescript
来编译.ts
,则会出现很多错误。 最佳答案
您可以使用gulp-typescript获得等效的结果
var gulp = require('gulp');
var ts = require('gulp-typescript');
gulp.task('default', function () {
var tsProject = ts.createProject('tsconfig.json');
var result = tsProject.src().pipe(ts(tsProject));
return result.js.pipe(gulp.dest('release'));
});
gulp.task('watch', ['default'], function() {
gulp.watch('src/*.ts', ['default']);
});
然后在你的
package.json
上"scripts": {
"gulp": "gulp",
"gulp-watch": "gulp watch"
}
然后跑
npm run gulp-watch
或者使用shell
var gulp = require('gulp');
var shell = require('gulp-shell');
gulp.task('default', function () {
return gulp.src('src/**/*.ts')
.pipe(shell('npm run tsc'))
.pipe(gulp.dest('./dist'))
.pipe(connect.reload());
});
gulp-shell
已经是blacklisted you can see why here另一种选择是设置
webpack
。