加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Gulp AssertionError [ERR_ASSERTION]:必须指定任

发布时间:2020-12-17 17:52:31 所属栏目:安全 来源:网络整理
导读:这是我第一次在stackoverflow中请与我礼貌. 我在终端上使用MacOS Sierra 10.13.6,我正在尝试为AngularJS上构建的webapp演示自定义模板.我已经安装了Gulp但是当我启动gulp服务时返回此错误而不启动本地服务器: assert.js:337throw err;^AssertionError [ERR_
这是我第一次在stackoverflow中请与我礼貌.

我在终端上使用MacOS Sierra 10.13.6,我正在尝试为AngularJS上构建的webapp演示自定义模板.我已经安装了Gulp但是当我启动gulp服务时返回此错误而不启动本地服务器:

assert.js:337
throw err;
^

AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (/Users/barkia/Desktop/Elysium/repos/elysium-webapp/material/node_modules/undertaker/lib/set-task.js:10:3)
at Gulp.task (/Users/barkia/Desktop/Elysium/repos/elysium-webapp/material/node_modules/undertaker/lib/task.js:13:8)
at Object.<anonymous> (/Users/barkia/Desktop/Elysium/repos/elysium-webapp/material/gulpfile.js:9:6)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)

这是实际在?/ Desktop / Elysium / repos / elysium-webapp / material / gulpfile.js中的gulpfile.js

我已经通过启动npm uninstall -g gulp并在npm install -g gulp之后删除了关于/usr/local/share/man/man1/gulp.1的先前错误但是我仍然在assert.js上遇到了这个问题:337

var gulp = require('gulp');
var args = require('yargs').argv;
var browserSync = require('browser-sync');
var config = require('./gulp.config')();
var del = require('del');
var $= require('gulp-load-plugins')({lazy: true});

gulp.task('help',$.taskListing);
gulp.task('default',['help']);

gulp.task('vet',function() {
    log('Analyzing source with JSHint and JSCS');

    return gulp
        .src(config.alljs)
        .pipe($.if(args.verbose,$.print()))
        .pipe($.jscs())
        .pipe($.jshint())
        .pipe($.jshint.reporter('jshint-stylish',{verbose: true}))
        .pipe($.jshint.reporter('fail'));
});

gulp.task('clean-tmp',function(done) {
    var files = config.tmp;
    clean(files,done);
});

gulp.task('clean',function(done) {
    var delconfig = [].concat(config.dist,config.tmp);
    log('Cleaning ' + $.util.colors.blue(delconfig));
    del(delconfig,done);
});

gulp.task('clean-all',function(done) {
    var delconfig = config.allToClean;
    log('Cleaning ' + $.util.colors.blue(delconfig));
    clean(delconfig,done);
});

gulp.task('pug-docs',function() {
    log('Compiling docs pug --> html');

    var options = {
        pretty: false
    }

    return gulp
        .src(config.docsPug)
        .pipe($.plumber({errorHandler: swallowError}))
        .pipe($.pug(options))
        .pipe(gulp.dest(config.docs));
});

gulp.task('less',function() {
    log('Compiling Less --> CSS');

    return gulp
        .src(config.less)
        .pipe($.plumber({errorHandler: swallowError}))
        .pipe($.less())
        .pipe($.autoprefixer())
        .pipe(gulp.dest(config.tmp));
});

gulp.task('less-watcher',function() {
    gulp.watch([config.less],['less']);
});

gulp.task('sass',function() {
    log('Compiling Sass --> CSS');

    var sassOptions = {
        outputStyle: 'nested' // nested,expanded,compact,compressed
    };

    return gulp
        .src(config.sass)
        .pipe($.plumber({errorHandler: swallowError}))
        .pipe($.sourcemaps.init())
        .pipe($.sass(sassOptions))
        .pipe($.autoprefixer())
        .pipe($.sourcemaps.write())
        .pipe(gulp.dest(config.tmp + '/styles'));
});

gulp.task('sass-min',function() {
    log('Compiling Sass --> minified CSS');

    var sassOptions = {
        outputStyle: 'compressed' // nested,compressed
    };

    return gulp
        .src(config.sass)
        .pipe($.plumber({errorHandler: swallowError}))
        .pipe($.sass(sassOptions))
        .pipe($.autoprefixer())
        .pipe(gulp.dest(config.tmp + '/styles'));    
})

gulp.task('sass-watcher',function() {
    gulp.watch([config.sass],['sass']);
});

gulp.task('inject',function() {
    log('Injecting custom scripts to index.html');

    return gulp
        .src(config.index)
        .pipe( $.inject(gulp.src(config.js),{relative: true}) )
        .pipe(gulp.dest(config.client));
});

gulp.task('copy',['sass-min'],function() {
    log('Copying assets');

    var assets = [].concat(config.assetsLazyLoad,config.assetsToCopy);

    gulp.src(config.tmp + '/styles/loader.css').pipe(gulp.dest(config.dist + '/styles'));

    return gulp
        .src(assets,{base: config.client})
        .pipe(gulp.dest(config.dist + '/'));
});

gulp.task('optimize',['inject','sass-min'],function() {
    log('Optimizing the js,css,html');

    return gulp
        .src(config.index)
        .pipe($.plumber({errorHandler: swallowError}))
        .pipe($.useref())
        .pipe($.if('scripts/app.js',$.uglify()))
        .pipe(gulp.dest( config.dist ));

});


gulp.task('serve','sass'],function() {
    startBrowserSync('serve');
});

gulp.task('build',['optimize','copy'],function() {
    startBrowserSync('dist');
})

gulp.task('serve-dist',function() {
    gulp.run('build');
})

gulp.task('serve-docs',['pug-docs'],function() {
    startBrowserSync('docs');
})



function clean(path,done) {
    log('Cleaning: ' + $.util.colors.blue(path));
    del(path,done);
}

function log(msg) {
    if (typeof(msg) === 'object') {
        for (var item in msg) {
            if (msg.hasOwnProperty(item)) {
                $.util.log($.util.colors.green(msg[item]));
            }
        }
    } else {
        $.util.log($.util.colors.green(msg));
    }
}

function swallowError (error) {
    // If you want details of the error in the console
    console.log(error.toString());

    this.emit('end');
}

function startBrowserSync(opt) {
    if (args.nosync || browserSync.active) {
        return;
    }

    var options = {
        port: 3000,ghostMode: {
            clicks: false,location: false,forms: false,scroll: true
        },injectChanges: true,logFileChanges: true,logLevel: 'debug',logPrefix: 'gulp-patterns',notify: true,reloadDelay: 0,//1000,online: false
    };

    switch(opt) {
        case 'dist':
            log('Serving dist app');
            serveDistApp();
            break;
        case 'docs':
            log('Serving docs');
            serveDocs();
            break;
        default:
            log('Serving app');
            serveApp();
            break;
    }

    function serveApp() {
        gulp.watch([config.sass],['sass']);

        options.server = {
            baseDir: [
                config.client,config.tmp
            ]
        };
        options.files = [
            config.client + '/**/*.*','!' + config.sass,config.tmp + '/**/*.css'
        ];

        browserSync(options);
    }

    function serveDistApp() {
        options.server = {
            baseDir: [
                config.dist
            ]
        };
        options.files = [];

        browserSync(options);
    }

    function serveDocs() {
        gulp.watch([config.docsPug],['pug-docs']);

        options.server = {
            baseDir: [
                config.docs
            ]
        }

        options.files = [
            config.docs + '/index.html','!' + config.pug
        ];

        browserSync(options);
    }

}

解决方法

我在升级到gulp 4时遇到了同样的问题.

依赖任务必须指定为系列或并行,只是名称不再足够.

gulp.task('copy',function() {

gulp.task('copy',gulp.series('sass-min'),function() {

gulp.parallel也可以用于并行执行任务

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读