任务“默认”不在您的 gulpfile 中

Posted

技术标签:

【中文标题】任务“默认”不在您的 gulpfile 中【英文标题】:Task "default" is not in your gulpfile 【发布时间】:2017-05-10 20:15:42 【问题描述】:

我在控制台中运行 gulp 时收到此错误:

我的 gulpfile 看起来不错:

var gulp = require('gulp'),
    LiveServer = require('gulp-live-server'),
    browserSync = require('browser-sync');

gulp.task('live-server', function () 
    var server = new LiveServer('server/main.js');
    server.start();
);

gulp.task('serve', ['live-server'], function () 
    browserSync.init(null, 
        proxy: "http://localhost:3000",
        port: 9001
    );
);

【问题讨论】:

【参考方案1】:

请将此包含在您的 gulp 文件中。

gulp.task('default', ['serve']);

希望这可能会有所帮助。

【讨论】:

【参考方案2】:

当您在控制台中运行gulp 时,它会查找要运行的默认任务。您只将 live-serverserve 定义为任务。

要解决定义一个默认任务,你可以像这样添加你真正想要运行的任务作为依赖:

gulp.task( 'default', [ 'serve' ] )

现在,如果您运行gulp,它将运行default 任务,而后者又运行serve 任务。或者,您也可以运行 gulp serve,它也可以正常工作。

【讨论】:

如果您的配置文件中有很多任务,则非常有用的插件是gulp-help,例如,当您键入普通的“gulp”时,它将作为您的助手,列出所有可用的命令。跨度> 【参考方案3】:

创建一个默认任务并添加您希望默认运行的任务:

gulp.task("default", function () 
  gulp.start("serve");
);

【讨论】:

【参考方案4】:

我遇到了类似的问题,这是我的 gulp 文件

我没有使用“默认”任务,而是直接调用“服务”任务。

在 cmd -> gulp serve

通过直接调用服务,它会为我调用浏览器同步任务。

希望这对某人有帮助:)

【讨论】:

【参考方案5】:

这是我以前的……

'use strict';

var gulp = require('gulp');
var concat = require('gulp-concat');
var cssmin = require('gulp-cssmin');
var uglify = require('gulp-uglify');
var merge = require('merge-stream');
var bundleConfig = require('./bundleconfig.json');

const REGEX = 
    css: /\.css$/,
    js: /\.js$/
;

gulp.task('min:js', async function () 
    merge(getBundles(REGEX.js).map(bundle => 
        return gulp.src(bundle.inputFiles,  base: '.' )
            .pipe(concat(bundle.outputFileName))
            .pipe(uglify())
            .pipe(gulp.dest('.'));
    ))
);

gulp.task('min:css', async function () 
    merge(getBundles(REGEX.css).map(bundle => 
        return gulp.src(bundle.inputFiles,  base: '.' )
            .pipe(concat(bundle.outputFileName))
            .pipe(cssmin())
            .pipe(gulp.dest('.'));
    ))
);

const getBundles = (regexPattern) => 
    return bundleConfig.filter(bundle => 
        return regexPattern.test(bundle.outputFileName);
    );
;

gulp.task('minify', gulp.series(['min:js', 'min:css']));

然后,实际上只需将最后一行更改为 'default' smh

'use strict';

var gulp = require('gulp');
var concat = require('gulp-concat');
var cssmin = require('gulp-cssmin');
var uglify = require('gulp-uglify');
var merge = require('merge-stream');
var bundleConfig = require('./bundleconfig.json');

const REGEX = 
    css: /\.css$/,
    js: /\.js$/
;

gulp.task('min:js', async function () 
    merge(getBundles(REGEX.js).map(bundle => 
        return gulp.src(bundle.inputFiles,  base: '.' )
            .pipe(concat(bundle.outputFileName))
            .pipe(uglify())
            .pipe(gulp.dest('.'));
    ))
);

gulp.task('min:css', async function () 
    merge(getBundles(REGEX.css).map(bundle => 
        return gulp.src(bundle.inputFiles,  base: '.' )
            .pipe(concat(bundle.outputFileName))
            .pipe(cssmin())
            .pipe(gulp.dest('.'));
    ))
);

const getBundles = (regexPattern) => 
    return bundleConfig.filter(bundle => 
        return regexPattern.test(bundle.outputFileName);
    );
;

gulp.task('default', gulp.series(['min:js', 'min:css']));

【讨论】:

以上是关于任务“默认”不在您的 gulpfile 中的主要内容,如果未能解决你的问题,请参考以下文章

任务'sass'不在你的gulpfile中

gulp-tslint 不在控制台上打印 linting 错误

在我的 gulp 任务中运行包的 gulp 任务

javascript Gulp 4 - 具有外部配置的多文件任务。使用gulp-load-plugins的基本gulpfile模板,用于多个任务文件

gulp的使用之gulpfile.js文件的配置

gulp构建工作流