在这个简单的问题上浪费了大约1小时的时间,寻找一个完整的答案,所以在这里添加另一个答案:
如果你的问题仅与typescript (tsc)有关,请参见https://dev59.com/E1oV5IYBdhLWcg3wJ8HD#36633318。否则,请参见下面的通用答案。
问题标题很通用,因此首先给出一个通用示例,然后再给出答案。
通用示例:
从此处安装nodejs(如果您还没有安装),最好使用LTS版本:https://nodejs.org/
安装以下内容:
npm install --save-dev gulp gulp-run
文件package.json
具有以下内容(可能有其他内容):
{
"name": "myproject",
"scripts": {
"cmd1": "echo \"yay! cmd1 command is run.\" && exit 1",
}
}
- 创建一个名为
gulpfile.js
的文件,内容如下:
var gulp = require('gulp');
var run = require('gulp-run');
gulp.task('mywatchtask1', function () {
gulp.watch('./*.js', function () {
return run('npm run cmd1').exec();
});
});
使用 gulp
运行任务 mywatchtask1
?
gulp mywatchtask1
现在,gulp 在当前目录中监听 js 文件的更改
如果有任何更改发生,则运行 npm 命令 cmd1
,每当 js 文件之一更改时,它都会打印出 yay!cmd1 command is run.
对于这个问题:作为另一个示例:
a)package.json
将拥有:
"tsc": "tsc -w",
使用以下方式替代:
"cmd1": "echo \"yay! cmd1 command is run.\" && exit 1",
b) 和
gulpfile.js
将有:
return run('npm run tsc').exec();
改为以下方式:
return run('npm run cmd1').exec();
希望这能有所帮助。
.pipe(shell('npm run tsc'))
... - Raul Fernandez