我在一台新机器上检查了我的项目,并得到了不满意的控制台输出。
控制台输出
吞下默认
使用 gulpfile ...\gulpfile.js
任务从未定义:默认
请检查文档以了解正确的 gulpfile 格式
gulp -v
CLI 版本 1.2.2
本地版本4.0.0-alpha.2
设置
Node 解释器:nodejs-6.9.2\node.exe
Gulp包:node_modules\gulp-4.0.build
Gulp 文件内容
'use strict';
var gulp = require('gulp');
var del = require('del');
var path = require('path');
var sass = require('gulp-sass');
var ts = require('gulp-typescript');
var gulpPromise = require("gulp-promise");
var gulpPromiseAll = require('gulp-all');
var merge = require('merge-stream');
var through = require('through2');
var runSequence = require('run-sequence');
var async = require("async");
var Rx = require('rx');
var chok = require('chokidar');
var deleteEmpty = require('delete-empty');
var browserSync = require('browser-sync').create();
var webserver = require('gulp-webserver');
var historyApiFallback = require('connect-history-api-fallback');
/* A few functions like this */
var yadda1 = function() {
return yadda9("yadda", yaddayadda);
};
/* A few tasks like this */
gulp.task('build', function(){
return gulpPromiseAll(
yadda1(),
yadda2(),
yadda3()
).then(
function() {
console.log("yadda");
}, function(err) {
console.error("yadda:", err);
}
);
});
gulp.task('default', gulp.series('build', 'serve', function(done) {
console.log("Default task that cleans, builds and runs the application [END]");
done();
}));
我做错了什么?
最佳答案
我刚刚遇到了这个问题。
我们都使用浏览器同步,与浏览器同步相关的任务是我的代码中的问题所在,因此您很有可能遇到相同的问题(也可能在您的其他 gulp 任务中) ,但不能肯定地说,因为您没有共享任务的代码。
问题:
在 gulp 3.x 中你可以编写如下代码:
gulp.task('watch', () => {
gulp.watch('./dev/styles/**/*.scss', ['styles'];
...
});
在 gulp 4.x 中不能。
解决方案:
在这些情况下,您必须传递函数而不是任务名称。您可以通过传递 gulp.series() 函数来完成此操作。上面的代码就变成:
gulp.task('watch', () => {
gulp.watch('./dev/styles/**/*.scss', gulp.series('styles'));
...
});
尝试在适用的情况下进行此更改。为我工作。
关于node.js - gulp 默认值,任务从未定义 : default, 请检查文档以了解正确的 gulpfile 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42368150/