我编写的自定义gulp文件是否存在问题,还是必须添加其他内容?

问题描述

朋友,我在终端上运行gulp命令时遇到错误我正在将Debian10 buster与nodejs@14.15.0和npm@6.14.8一起使用。 我已在本地安装gulp@4.0.2。

AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (/home/prithvi/Desktop/bootstrap/node_modules/undertaker/lib/set- 
task.js:10:3)
at Gulp.task (/home/prithvi/Desktop/bootstrap/node_modules/undertaker/lib/task.js:13:8)
at Object.<anonymous> (/home/prithvi/Desktop/bootstrap/gulpfile.js:32:6)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at requireOrImport (/usr/lib/node_modules/gulp-cli/lib/shared/require-or-import.js:19:11) {
    generatedMessage: false,code: 'ERR_ASSERTION',actual: false,expected: true,operator: '==' 
}

以下gulp代码有什么问题?

下面是gulpfile.js文件

'use strict';

var gulp = require('gulp'),sass = require('gulp-sass'),browserSync = require('browser-sync');

gulp.task('sass',function() {
     return gulp.src('./styles/*.scss')
    .pipe(sass().on('error',sass.logError))
    .pipe(gulp.dest('./styles'));
});

gulp.task('sass:watch',function() {
     gulp.watch('./styles/*.scss',['sass']);
});

gulp.task('browser-sync',function()  {
     var files = [
         './*.html','./styles/*.css','./js/*.js','./img/*.{png,jpg,gif}'
     ];

     browserSync.init(files,{
         server : {
             baseDir: './'
         }
     });
});

gulp.task('default',['browser-sync'],function() {
     gulp.start('sass:watch');
});

解决方法

您正在使用具有v3语法的Gulp v4。您应该降级到v3或根据“新” documentation更新任务。

在v4中,您需要将gulp.series()gulp.parallel()生成的taskFunction或组合任务作为task()中的第二个参数传递。例如,您的sass任务可以编写如下:

function sass() {
  return gulp.src('./styles/*.scss')
    .pipe(sass().on('error',sass.logError))
    .pipe(gulp.dest('./styles'))
}

gulp.task('sass',gulp.series(sass))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...