AssertionError [ERR_ASSERTION]: Task never defined: Task never defined: app/scss/**/*.scss

136
02 января 2020, 19:10

Появилась проблема с запуском таска, видимо проблема в непонимании, gulp4, но не понимаю с чем связана ошибка. gulpfile.js

var gulp = require("gulp");
var scss = require("gulp-sass");
var browserSync = require("browser-sync");
gulp.task('compile', function(){
    gulp.parallel("app/scss/**/*.scss")
        .pipe(scss())
        .pipe(gulp.parallel('app/css'))
        .pipe(browserSync.stream);
        done();
});
gulp.task("watch", function(done) {
    browserSync.init({
        server:'app/'
    })
    gulp.watch("app/sccs/**/*.scss", gulp.series('scss'));
    gulp.watch('app/*.html').on('change',()=>{
        browserSync.reload();
        done();
    });
    done();
})
gulp.task('default', gulp.series('compile', 'watch'));

Код ошибки в консоли:

[23:04:08] Using gulpfile ~\Desktop\Project_1\gulpfile.js
[23:04:08] Starting 'default'...
[23:04:08] Starting 'compile'...
[23:04:08] 'compile' errored after 6.63 ms
[23:04:08] AssertionError [ERR_ASSERTION]: Task never defined: app/scss/**/*.scss
    at getFunction (C:\Users\Gleb\Desktop\Project_1\node_modules\undertaker\lib\helpers\normalizeArgs.js:15:5)
    at map (C:\Users\Gleb\Desktop\Project_1\node_modules\arr-map\index.js:20:14)
    at normalizeArgs (C:\Users\Gleb\Desktop\Project_1\node_modules\undertaker\lib\helpers\normalizeArgs.js:22:10)
    at Gulp.parallel (C:\Users\Gleb\Desktop\Project_1\node_modules\undertaker\lib\parallel.js:13:14)
    at C:\Users\Gleb\Desktop\Project_1\gulpfile.js:6:10
    at taskWrapper (C:\Users\Gleb\Desktop\Project_1\node_modules\undertaker\lib\set-task.js:13:15)
    at bound (domain.js:395:14)
    at runBound (domain.js:408:12)
    at asyncRunner (C:\Users\Gleb\Desktop\Project_1\node_modules\async-done\index.js:55:18)
    at process._tickCallback (internal/process/next_tick.js:61:11)
[23:04:08] 'default' errored after 66 ms

Доп.инфа.:

{
  "name": "project_1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "browser-sync": "^2.26.3",
    "gulp": "^4.0.0",
    "gulp-sass": "^4.0.2"
  }
}
Answer 1

Причина этой ошибки в том, что вы используйте gulp.parallel() вместо gulp.src() и gulp.dest()

gulp.parallel() предназначен для того, чтобы параллельно запустить несколько задач

gulp.src() читает файлы

А gulp.dest() записывает в файлы

Кроме того, done() в задаче watch не нужны, а browserSync.stream в .pipe() нужно вызвать (то есть .pipe(browserSync.stream())), как сказано в документации BrowserSync

В итоге, если исправить допущенные ошибки, получается такой gulpfile.js

var gulp = require("gulp");
var scss = require("gulp-sass");
var browserSync = require("browser-sync");
gulp.task('compile', function(){
    return gulp.src("app/scss/**/*.scss")
        .pipe(scss())
        .pipe(gulp.dest('app/css'))
        .pipe(browserSync.stream());
});
gulp.task("watch", function(done) {
    browserSync.init({
        server:'app/'
    })
    gulp.watch("app/scss/**/*.scss", gulp.series('compile'));
    gulp.watch('app/*.html').on('change', browserSync.reload);
});
gulp.task('default', gulp.series('compile', 'watch'));
READ ALSO
Проблема добавления элемента через appendChild

Проблема добавления элемента через appendChild

Добрых времени суток! Проблема в следующем, возникла задача добавить созданный span в каждый 2-ой(!) элемент в блоке divtest, как это можно сделать?...

148
Как получить значение числа?

Как получить значение числа?

Как получить значение из числа?

166
Выделение памяти под константы

Выделение памяти под константы

Есть код, работающий в браузере:

107