在这个简单的事情上浪费了大约 1 个小时,寻找一个完整的答案,所以在这里添加另一个:
如果您的问题仅针对 typescript (tsc),请参阅https://stackoverflow.com/a/36633318/984471
否则,请参阅下面的通用答案。
问题标题是通用的,所以下面先给出一个通用的例子,然后是答案。
通用示例:
安装 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 () {
// watch for javascript file (*.js) changes, in current directory (./)
gulp.watch('./*.js', function () {
// run an npm command called `test`, when above js file changes
return run('npm run cmd1').exec();
// uncomment below, and comment above, if you have problems
// return run('echo Hello World').exec();
});
});
mywatchtask1
使用gulp
?运行任务
gulp mywatchtask1
现在,gulp 正在监视当前目录中的 js 文件更改,
如果发生任何更改,然后运行 npm 命令cmd1
,它将在yay! cmd1 command is run.
每次 js 文件更改时打印。
对于这个问题:作为另一个例子:
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();
希望有帮助。