本來想着用gulp搭建一個自動化構建工具,結果一頓報錯,后來發現我重新安裝的gulp版本是4.0.0,與3版本還是不太一樣的,遂記之。
Gulp 3版本Demo:
const gulp = require('gulp'); // 設定一個任務 gulp.task('hello',() => { console.log('print hello'); }); // 再設定一個任務 gulp.task('world',() => { console.log('print world'); }); // 設置一個默認的任務 gulp.task('default',['hello','world']);
但用上述語句在Gulp4中會報錯:
assert.js:350 throw err; ^ AssertionError [ERR_ASSERTION]: Task function must be specified at Gulp.set [as _setTask] (C:\Users\zxq\Desktop\gulpCourse\node_modules\_undertaker@1.2.0@undertaker\lib\set-task.js:10:3) at Gulp.task (C:\Users\zxq\Desktop\gulpCourse\node_modules\_undertaker@1.2.0@undertaker\lib\task.js:13:8) at Object.<anonymous> (C:\Users\zxq\Desktop\gulpCourse\gulpfile.js:26:6) at Module._compile (internal/modules/cjs/loader.js:688:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10) at Module.load (internal/modules/cjs/loader.js:598:32) at tryModuleLoad (internal/modules/cjs/loader.js:537:12) at Function.Module._load (internal/modules/cjs/loader.js:529:3) at Module.require (internal/modules/cjs/loader.js:636:17) at require (internal/modules/cjs/helpers.js:20:18)
Gulp 4中的正確寫法(結合async 和 await):
const gulp = require('gulp'); gulp.task('hello', async() => { await console.log('print hello'); }); gulp.task('world', async() => { await console.log('print world'); }); gulp.task('default',gulp.series(gulp.parallel('hello','world')));