如何从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
,我会得到一堆错误。
3条答案
按热度按时间q9rjltbz1#
您可以使用gulp-typescript获得等效值
然后在你的
package.json
上然后运行
或者使用shell
gulp-shell
已被列入黑名单,您可以在此处了解原因另一种方法是设置
webpack
。de90aj5v2#
在这个简单的事情上浪费了大约1个小时,寻找一个~完整的答案,所以在这里添加另一个:
如果您的问题仅出现在 typescript (tsc)上,请参阅https://stackoverflow.com/a/36633318/984471
否则,请参见下面的通用答案。
问题标题是通用的,所以下面先给出一个通用的例子,然后再给出答案。
一般范例:
1.如果您还没有安装nodejs,最好安装LTS版本,请从以下位置安装:https://nodejs.org/
1.安装如下:
npm install --save-dev gulp gulp-run
1.文件
package.json
包含以下内容(可以包含其他内容):1.创建包含以下内容的文件
gulpfile.js
:1.是否使用
gulp
运行任务mywatchtask1
?gulp mywatchtask1
现在,gulp正在监视当前目录中js文件的变化。
如果发生任何更改,则运行npm命令
cmd1
,每次js文件之一更改时,它将打印yay! cmd1 command is run.
。**对于此问题:**作为另一个示例:
a)
package.json
将具有而不是以下内容:
B)且,
gulpfile.js
将具有:而不是下面:
希望能有所帮助。
aelbi1ox3#
您可以尝试使用childprocess节点包或
使用https://www.npmjs.com/package/gulp-run