我在控制台中遇到这样的错误: $ gulp
assert.js:90
throw new assert.AssertionError({
^
AssertionError: Task function must be specified
at Gulp.set [as _setTask] (C:\Users\user\Projects\New project\node_modules\undertaker\lib\set-task.js:10:3)
at Gulp.task (C:\Users\user\Projects\New project\node_modules\undertaker\lib\task.js:13:8)
at Object.<anonymous> (C:\Users\user\Projects\New project\gulpfile.js:44:6)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
这是我的gulpfile:
var gulp = require('gulp');
var build = require('gulp-build');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var browser_sync = require('browser-sync');
var gulps = require("gulp-series");
//gulp-build
gulp.task('build', function() {
gulp.src('scripts/*.js')
.pipe(build({
GA_ID: '123456'
}))
.pipe(gulp.dest('dist'))
});
//gulp-sass
gulp.task('sass', function() {
return gulp.src('scss/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass({
errLogToConsole: true,
outputStyle: 'expanded'
}).on('error', sass.logError))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('css'));
});
//gulp-browser-sync
gulp.task('browser_sync', function() {
var files = [
'*.html',
'css/*.css'
];
browser_sync.init(files, {
server: {
baseDir: './'
}
});
});
//gulp-watch
gulp.task('watch', ['sass'], function() {
gulp.watch('scss/**/*.scss', ['sass']);
});
//gulp-series
gulps.registerTasks({
"test1": (function(done) {
setTimeout(function() {
console.log("test1 is done");
done();
}, 1000);
}),
"test2": (function() {
console.log("test2 is done");
})
});
gulps.registerSeries("default", ["test1", "test2"]);
// gulp.task('default', ['watch', 'browser_sync'], function() {});
我只是一个初学者,你知道我做错了什么吗?
答案 0 :(得分:35)
我认为你使用gulp 4和gulp 3&#39;语法&#39; 所以要么安装gulp 3,你的gulpfile应该是有效的,并准备好将其迁移到gulp 4. since git 2.7是一篇很好的文章。
Here gulp
答案 1 :(得分:9)
gulp 4 series(...... tasks)
gulp.task('one', function(done) {
// do stuff
done();
});
gulp.task('two', function(done) {
// do stuff
done();
});
gulp.task('default', gulp.series('one', 'two', function(done) {
// do more stuff
done();
}));
答案 2 :(得分:3)
gulp自动安装版本4.0.0
通过以下命令更改您的gulp版本
npm install gulp@3.3.4 --save
这将解决您的问题。
答案 3 :(得分:1)
我使用以下命令解决了问题
npm install --save-dev gulp@3.9.1
这将解决您的问题(我已在窗口7和窗口10中解决了问题)
答案 4 :(得分:0)
现在只是因为相同的错误而通过,DAXaholic's answer是正确的,您的gulpfile.js
的gulp@3.*,但是您已经安装了gulp4。只需安装正确的版本:
npm i -D gulp@3.*
答案 5 :(得分:0)
更改package.json以安装旧版本或最新版本的Gulp,如下所示:
"gulp": "^3.9.1",
使用gulp -v命令检查您的Gulp的CLI版本和本地版本。
CLI版本3.9.1
本地版本3.9.1
if it's not equal this error may occur.
答案 6 :(得分:0)
如果您知道
,那么也要注意“ AssertionError:任务从未定义:两个”
可能是因为任务应按顺序执行,所以首先执行一个任务,然后执行第二项任务,然后执行
gulp.series('一个','两个')
答案 7 :(得分:-1)
我用以下方法解决了这个问题:
npm install gulp-cli -g npm install gulp -D npx -p touch nodetouch gulpfile.js
gulp.js上可用的默认安装命令 希望对您有所帮助,