Running into 'TypeError: args.cb is not a function' Error when using gulp
Running into 'TypeError: args.cb is not a function' Error when using gulp
我对在我的工作流程中使用 Gulp 还比较陌生。
下面是我的gulpfile.js。我尝试自我调试并使用来自另一个 BrowserStack 问题的一些提示,但我无法弄明白。
当我保存 .php 文件时,它会重新加载浏览器,但出现错误。当我更新 scss 文件时,它完全 sass 成功。
const gulp = require( 'gulp' );
const sourcemaps = require( 'gulp-sourcemaps' );
const sass = require('gulp-sass');
const csso = require('gulp-csso');
const autoprefixer = require('gulp-autoprefixer');
const browserSync = require('browser-sync').create();
sass.compiler = require('node-sass');
// Create browsersyn function
function sync(done) {
browserSync.init({
files: './**/*.php',
// Changegit
proxy: 'http://localhost/jacks-bistro'
});
done();
}
// Create sass and sourcemaps function
function sassy() {
return gulp.src('./assets/*.scss')
.pipe( sourcemaps.init() )
.pipe(sass().on('error', sass.logError))
.pipe( autoprefixer() )
.pipe(csso())
.pipe( sourcemaps.write( './' ) )
.pipe(gulp.dest('./'))
.pipe(browserSync.stream());
};
// Create tasks for functions(probably not needed)
gulp.task( "sass", sassy );
gulp.task( "sync", sync );
// Create watch task
gulp.task( 'watch', function () {
gulp.watch('./assets/*.scss', gulp.series('sass'));
gulp.watch('./**/*.php', gulp.series('sync'));
});
这是我收到的错误:
[23:07:06] 'sync' errored after 815 μs
[23:07:06] TypeError: args.cb is not a function
at Object.init (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/node_modules/browser-sync/dist/public/init.js:21:25)
at sync (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/gulpfile.js:12:15)
at sync (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/node_modules/undertaker/lib/set-task.js:13:15)
at bound (domain.js:430:14)
at runBound (domain.js:443:12)
at asyncRunner (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/node_modules/async-done/index.js:55:18)
at processTicksAndRejections (internal/process/task_queues.js:75:11)
我不知道错误在哪里。任何帮助将不胜感激。
从堆栈跟踪中,我可以推断错误源自 done
,它作为参数传递给您的 sync
函数。 done
不是一个函数,而是像一个函数一样被调用,这可能就是为什么你得到 args.cb
不是一个函数。
我对在我的工作流程中使用 Gulp 还比较陌生。 下面是我的gulpfile.js。我尝试自我调试并使用来自另一个 BrowserStack 问题的一些提示,但我无法弄明白。
当我保存 .php 文件时,它会重新加载浏览器,但出现错误。当我更新 scss 文件时,它完全 sass 成功。
const gulp = require( 'gulp' );
const sourcemaps = require( 'gulp-sourcemaps' );
const sass = require('gulp-sass');
const csso = require('gulp-csso');
const autoprefixer = require('gulp-autoprefixer');
const browserSync = require('browser-sync').create();
sass.compiler = require('node-sass');
// Create browsersyn function
function sync(done) {
browserSync.init({
files: './**/*.php',
// Changegit
proxy: 'http://localhost/jacks-bistro'
});
done();
}
// Create sass and sourcemaps function
function sassy() {
return gulp.src('./assets/*.scss')
.pipe( sourcemaps.init() )
.pipe(sass().on('error', sass.logError))
.pipe( autoprefixer() )
.pipe(csso())
.pipe( sourcemaps.write( './' ) )
.pipe(gulp.dest('./'))
.pipe(browserSync.stream());
};
// Create tasks for functions(probably not needed)
gulp.task( "sass", sassy );
gulp.task( "sync", sync );
// Create watch task
gulp.task( 'watch', function () {
gulp.watch('./assets/*.scss', gulp.series('sass'));
gulp.watch('./**/*.php', gulp.series('sync'));
});
这是我收到的错误:
[23:07:06] 'sync' errored after 815 μs
[23:07:06] TypeError: args.cb is not a function
at Object.init (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/node_modules/browser-sync/dist/public/init.js:21:25)
at sync (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/gulpfile.js:12:15)
at sync (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/node_modules/undertaker/lib/set-task.js:13:15)
at bound (domain.js:430:14)
at runBound (domain.js:443:12)
at asyncRunner (/Applications/XAMPP/xamppfiles/htdocs/jacks-bistro/wp-content/themes/jb_ewm/node_modules/async-done/index.js:55:18)
at processTicksAndRejections (internal/process/task_queues.js:75:11)
我不知道错误在哪里。任何帮助将不胜感激。
从堆栈跟踪中,我可以推断错误源自 done
,它作为参数传递给您的 sync
函数。 done
不是一个函数,而是像一个函数一样被调用,这可能就是为什么你得到 args.cb
不是一个函数。