这是我的 gulpfile.js
var gulp = require('gulp');
var browserify = require('browserify');
var source = require("vinyl-source-stream");
var reactify = require("reactify");
var watchify = require('watchify');
var gutil = require('gulp-util');
var paths = {
scripts: ['src/jsx/index.jsx']
};
gulp.task('browserify', function(){
var bundler = watchify(browserify('./src/jsx/index.jsx', watchify.args));
bundler.transform(reactify);
bundler.on('update', rebundle);
function rebundle() {
return bundler.bundle()
// log errors if they happen
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('bundle.js'))
.pipe(gulp.dest('./public/js'));
}
return rebundle();
});
gulp.task('watch', function() {
gulp.watch(paths.scripts, ['browserify']);
});
然后我的命令行输出如下所示:
$ gulp watch
[15:10:41] Using gulpfile ~/blizztrack/dashboard/gulpfile.js
[15:10:41] Starting 'watch'...
[15:10:41] Finished 'watch' after 9.95 ms
保存index.jsx
[15:10:45] Starting 'browserify'...
[15:10:51] Finished 'browserify' after 5.33 s
第二次保存index.jsx
[15:11:08] Starting 'browserify'...
[15:11:10] Finished 'browserify' after 2.02 s
第三次保存index.jsx
无输出。
前两次似乎完全符合我的要求,然后就停止观看了。谁能指出我正确的方向?
最佳答案
刚刚遇到这个问题。在浏览网页寻找答案几个小时后,我尝试在记事本而不是 PHPStorm IDE 中编辑文件。事实证明,browserify/watchify 继续通过记事本工作。
那就是我尝试尝试一些设置的时候。事实证明,PHPStorm/系统设置/使用“安全写入”,如果启用,会在 PHPStorm 编辑文件后停止 watchify。
当我关闭“安全注销”时,所有问题都神奇地消失了。我不确定你使用的是什么 IDE,但也许也有一个“安全写入”选项。
关于Gulp 与 watchify/browserify 运行两次然后停止观看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27260066/