I';我试图在使用Gulp 4时修复一个引用错误,它赢了';不要查看我的sass,也不要在浏览器中显示更改

I';我试图在使用Gulp 4时修复一个引用错误,它赢了';不要查看我的sass,也不要在浏览器中显示更改,gulp,Gulp,我似乎不明白错误在说什么。我正确地设置了其他所有内容,但由于错误,没有一个可以正常工作。我似乎在任何地方都找不到这个问题。任何帮助都将不胜感激 我一直在犯这个错误 ReferenceError: watchFiles is not defined at Object.<anonymous> (gulpfile.js:42:29) 上面的代码显示了上下文的错误 function initBrowsersync(done) { browserSync.init({

我似乎不明白错误在说什么。我正确地设置了其他所有内容,但由于错误,没有一个可以正常工作。我似乎在任何地方都找不到这个问题。任何帮助都将不胜感激

我一直在犯这个错误

ReferenceError: watchFiles is not defined
    at Object.<anonymous> (gulpfile.js:42:29)
上面的代码显示了上下文的错误

function initBrowsersync(done) {
    browserSync.init({
        server: {
            baseDir: 'app',
            index: 'index.html'
        },
        startPath: '/html'
    });

    done();
}

gulp.task('watchFiles', () => {
    gulp.watch('app/scss/**/*.scss', gulp.series('style'));
    gulp.watch('app/**/*.html').on('change', browserSync.reload);
    gulp.watch('app/css/*.css').on('change', browserSync.reload);
    gulp.watch('app/javascript/**/*.js').on('change', browserSync.reload);
});
exports.style = style;
exports.watch = watchFiles;
exports.default = watch;

下面的代码显示了上下文的错误

function initBrowsersync(done) {
    browserSync.init({
        server: {
            baseDir: 'app',
            index: 'index.html'
        },
        startPath: '/html'
    });

    done();
}

gulp.task('watchFiles', () => {
    gulp.watch('app/scss/**/*.scss', gulp.series('style'));
    gulp.watch('app/**/*.html').on('change', browserSync.reload);
    gulp.watch('app/css/*.css').on('change', browserSync.reload);
    gulp.watch('app/javascript/**/*.js').on('change', browserSync.reload);
});
exports.style = style;
exports.watch = watchFiles;
exports.default = watch;

下面是其他任务,我将其设置为像丑陋和缩小css一样运行。

更改

const watch=gulp.parallel(watchFiles,initBrowsersync)

const watch=gulp.parallel('watchFiles',initBrowsersync)

当使用定义任务的
gulp.task('watchFiles'),…
方式时,对该任务的其他引用必须作为字符串

使用函数initBrowsersync(done){
定义函数版本时,可以将这些任务作为简单的非字符串函数引用

因此,您的另一个选项是定义
watchFiles
,如下所示:

//gulp.task('watchFiles', () => {

function watchFiles() {
  gulp.watch('app/scss/**/*.scss', gulp.series('style'));
  gulp.watch('app/**/*.html').on('change', browserSync.reload);
  gulp.watch('app/css/*.css').on('change', browserSync.reload);
  gulp.watch('app/javascript/**/*.js').on('change', browserSync.reload);
//});
};
然后你可以使用:

const watch=gulp.parallel(watchFiles,initBrowsersync);


我建议使用第二种方法。

它不起作用,它给了我另一个错误。我只是想重新生成整个文件,而不是修复一些损坏的文件。我会留下答案,因为它确实更正了您提供的代码。我重新生成了我的gulp.js文件。现在一切都很好。Browsersync工作不正常,但我想知道我是否正确实际上需要它,因为visual studio code live server extension通过Gulp将更改流式处理得很好。很高兴您能让它正常工作。我使用browserSync,但这只是因为我在live server extension发布和流行之前就开始使用它。