项目场景:
在gulpfile.js中自动运行命令行(终端)命令
不用自己在命令行工具中多次输入同样的命令
问题描述:
在gulpfile.js
中监听到 ts 文件保存后,自动运行命令将ts文件编译成js文件
exec = require('child_process').exec
//监听文件
gulp.task("watch", function (cb) {
gulp.watch(['**', '!node_modules/**', '!./**/**.ts'], gulp.series('html'))
// 监听所有的ts文件
const watcher = gulp.watch(['./**/**.ts'])
// 获取具体的ts文件
watcher.on('change', function (path, stats) {
// 运行命令 带文件路径
exec('tsc ' + __dirname + '/' + path, function (err, stdout, stderr) {
if (err != null) {
console.log(stdout);
}
})
})
watcher.close
cb()
})
解读:
watcher.on
: 是为了获取具体那个文件发生了改变,得到文件的路径
exec
: 使用 node
的 child_process
模块运行命令