【问题标题】:Gulp AssertionError - Sass DependanciesGulp AssertionError - Sass 依赖项
【发布时间】:2018-06-08 15:54:31
【问题描述】:

尝试通读本教程以获得初学者的感觉:

https://www.youtube.com/watch?v=nusgoj74a3Y

目前运行 gulp 时出现此错误,有什么想法吗?:

gulpfile.js

'use strict';


//dependancies
var gulp = require('gulp');
var sass = require('gulp-sass');
var minifyCSS = require('gulp-clean-css');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var changed = require('gulp-changed');


// - SCSS/CSS

var SCSS_SRC = './src/Assets/scss/**/*.scss';
var SCSS_DEST = './src/Assets/css';


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

  gulp.src(SCSS_SRC)
  .pipe(sass().on('error', sass.logError))
  .pipe(minifyCSS())
  .pipe(rename({ suffix: '.min' }))
  .pipe(changed(SCSS_DEST))
  .pipe(gulp.dest(SCSS_DEST));

});

gulp.task('watch_scss', function() {
  gulp.watch(SCSS_SRC, ['compile_scss']);
});

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

输出

assert.js:269
    throw err;
    ^

AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (/Users/ss/Desktop/reactTest/my-app/node_modules/undertaker/lib/set-task.js:10:3)
at Gulp.task (/Users/ss/Desktop/reactTest/my-app/node_modules/undertaker/lib/task.js:13:8)
at Object.<anonymous> (/Users/ss/Desktop/reactTest/my-app/gulpfile.js:34:6)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)

有点难过,感谢任何帮助。

【问题讨论】:

    标签: javascript gulp gulp-watch gulp-sass


    【解决方案1】:

    您正在使用 gulp 4,术语已更改为

    'use strict';
    
    
    //dependancies
    var gulp = require('gulp');
    var sass = require('gulp-sass');
    var minifyCSS = require('gulp-clean-css');
    var uglify = require('gulp-uglify');
    var rename = require('gulp-rename');
    var changed = require('gulp-changed');
    
    
    // - SCSS/CSS
    
    var SCSS_SRC = './src/Assets/scss/**/*.scss';
    var SCSS_DEST = './src/Assets/css';
    
    
    gulp.task('compile_scss', function() {
    
      gulp.src(SCSS_SRC)
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCSS())
      .pipe(rename({ suffix: '.min' }))
      .pipe(changed(SCSS_DEST))
      .pipe(gulp.dest(SCSS_DEST));
    
    });
    
    gulp.task('watch_scss', function() {
      gulp.watch(SCSS_SRC, gulp.series('compile_scss'));
    });
    
    gulp.task('default', ['watch_scss']);
    

    基本上运行文件更健壮。您现在可以否定 runSequence 之类的插件,因为它具有所有这些功能。

    基本上你能做的就是去

    gulp.task('build', function (callback) {
        runSequence('runFirst', ['ranTogether1','ranTogether2'], 'ranLast'), callback
    });
    

    gulp.task('build',
      gulp.series('runFirst', gulp.parallel('ranTogether1', 'ranTogether2'),'ranLast'),
      function() {...}));
    

    More info here

    【讨论】:

    • 越来越近了,现在有一个新错误:错误:正在观看 ./src/Assets/scss/**/*.scss: watch task has to be a function(可选使用 gulp.parallel 生成或 gulp.series)
    • 对不起,我回去改了你的sn-p。检查我的原始答案,因为它已更新。 :D
    • 我收到另一个断言错误:/
    • 你试过用括号替换('stuff",'stuff'),而不是像['stuff','stuff'] idk 我坚持gulp 3 你吓到我了
    • 你能把它变成一个 repo 并确保一个分支保持这个状态吗?我很想解决这个问题,因为它的战斗力如此之大
    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多