Cтолкнулся с такой проблемой. Возникла надобность написать функцию для задач gulp, в которую передается объект вида:
const
gulp = require('gulp'),
$ = require('gulp-load-plugins')();
let
envMode = {
dev: {
mode: {
name: "dev"
}
task: {
pug: {
name: "pug",
src: "./src/**/*.pug",
dest: "./build",
plugins: [
$.pug({pretty:true}),
$.rename({extname:'.php'})
]
}
}
}
}
Код функции:
let
builder = (mode, task) => {
gulp
.task(mode.name+':'+task.name, () => {
let
plugStart = [
gulp.src(task.src),
$.notify('start')
],
plugEnd = [
$.notify('end'),
gulp.dest(task.dest)
]
return $.pipe([
...plugStart,
...task.plugins,
...plugEnd
])
});
}
В итоге имеем ошибку возникающую при сборке из gulp.watch:
let watcher = (mode, task) => {
gulp.watch(mode.name+':watch:'+task.name, gulp.series(mode.name+':'+task.name));
}
Error: write after end at writeAfterEnd (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_writable.js:288:12) at DestroyableTransform.Writable.write (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_writable.js:332:20) at DestroyableTransform.ondata (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_readable.js:619:20) at DestroyableTransform.emit (events.js:159:13) at addChunk (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_readable.js:291:12) at readableAddChunk (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_readable.js:278:11) at DestroyableTransform.Readable.push (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_readable.js:245:10) at DestroyableTransform.Transform.push (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_transform.js:148:32) at DestroyableTransform.notify [as _transform] (D:\OSPanel\domains\jub\node_modules\gulp-notify\lib\notify.js:41:14) at DestroyableTransform.Transform._read (D:\OSPanel\domains\jub\node_modules\readable-stream\lib_stream_transform.js:184:10)
Код gulp-pipe
module.exports = function pipe(stream, tubes) {
tubes = tubes || stream.slice(1);
return tubes.reduce(function(stream, tube) { return stream.pipe(tube); }, Array.isArray(stream) ? stream[0] : stream);
};
Общая задача выглядит так:
gulp.task('dev', gulp.series('dev:pug', gulp.parallel('dev:watch:pug')));
В череде экспериментов не копирование массива внутрь функции а-ля plug = task.plugins
, ни изменения переменных на let/const/var
, ни замена плагина gulp-pipe на рекомендованный gulp@4.0.0 pump, понижение версии gulp, ничего не решает проблему, если массив из объекта task.plugins
поместить внутрь функции всё работает. Уже не знаю что можно сделать и исполнение менял с series
на parallel
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Как воспроизвести видео сразу после его загрузки в ActionScript?
Что это означает в консоли?
Значит в JS запаковываю изображение и нужную мне строку отправляю как json:
На сайт поставили код mango office callback ( https://wwwmango-office