【发布时间】:2016-09-25 06:04:05
【问题描述】:
与其他问题类似,在这个非常淡化的 sn-p 中,运行 default gulp 任务(通过运行 gulp 的 npm start);这个 sn-p 创建了一个无限循环,一遍又一遍地运行脚本任务。这是 gulpfile.js (字面意思是目前的全部内容):
'use strict';
const gulp = require('gulp');
// COPY SCRIPTS TO BUILD FOLDER
gulp.task('scripts', function() {
return gulp.src('./scripts/**/*.js')
.pipe(gulp.dest('build/scripts'))
});
// WATCH FILES
gulp.task('watch', function() {
gulp.watch('./scripts/**/*.js', ['scripts']);
});
// DEFAULT
gulp.task('default', ['watch']);
特别奇怪的是,无论build文件夹是否新建,调用npm start后都会立即执行脚本任务!然后循环开始。
如果您好奇,这里是我的 package.json 中粘贴的(也是唯一的)脚本对象:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "gulp"
},
我的目录中唯一的其他东西是一个 scripts 文件夹,其中包含一个 app.js 和一个 home.js 文件。显然,一旦运行此任务,就会创建 build 文件夹(如果还没有的话)并将上述两个文件复制到其中。
你可以看到我只是在根目录的第一级文件夹中寻找脚本,称为脚本,所以我不应该通过引用同一组脚本上的更改来进行无限循环。此外,即使我是明确的,并且指向具有相对路径(例如 ./scripts/home.js)的特定文件,这仍然会发生。
我预计会感到尴尬,但我完全糊涂了。
【问题讨论】: