Занимался настройкой gulp по гайду, все один в один, но у меня появляется ошибка.
[19:55:55] Using gulpfile D:\gulp-2022\gulpfile.js
[19:55:55] Starting 'default'...
[19:55:55] Starting 'reset'...
[19:55:55] Finished 'reset' after 13 ms
[19:55:55] Starting 'copy'...
[19:55:55] Starting 'html'...
[19:55:56] Finished 'html' after 21 ms
[19:55:56] Finished 'copy' after 23 ms
[19:55:56] Starting 'watcher'...
[19:55:56] 'watcher' errored after 11 ms
[19:55:56] TypeError: expected a string
at module.exports (D:\gulp-2022\node_modules\is-negated-glob\index.js:5:11)
at sortGlobs (D:\gulp-2022\node_modules\glob-watcher\index.js:67:18)
at Array.forEach (<anonymous>)
at watch (D:\gulp-2022\node_modules\glob-watcher\index.js:64:18)
at Gulp.watch (D:\gulp-2022\node_modules\gulp\index.js:48:10)
at watcher (file:///D:/gulp-2022/gulpfile.js:15:8)
at bound (node:domain:433:15)
at runBound (node:domain:444:12)
at asyncRunner (D:\gulp-2022\node_modules\async-done\index.js:55:18)
at processTicksAndRejections (node:internal/process/task_queues:78:11)
[19:55:56] 'default' errored after 50 ms
Понял, что ошибка появляется после добавления строк связанных с папкой html, но из-за чего именно понять не могу.
Код до ошибок.
// html.js
//path.js
import * as nodePath from 'path';
const rootFolder = nodePath.basename(nodePath.resolve());
const buildFolder = `./dist`;
const srcFolder = `./src`;
export const path = {
build: {
files: `${buildFolder}/files/`,
},
src: {
files: `${srcFolder}/files/**/*.*`,
},
watch: {
files: `${srcFolder}/files/**/*.*`,
},
clean: buildFolder,
buildFolder: buildFolder,
srcFolder: srcFolder,
rootFolder: rootFolder,
ftp: ``,
}
//gulpfile.js
import gulp from "gulp";
import { path } from "./gulp/config/path.js";
global.app = {
path: path,
gulp: gulp,
}
import { copy } from "./gulp/tasks/copy.js";
import { reset } from "./gulp/tasks/reset.js";
function watcher () {
gulp.watch(path.watch.files, copy)
}
const dev = gulp.series(reset, copy, watcher);
gulp.task('default', dev);
Код с ошибкой.
// html.js
export const html = () => {
return app.gulp.src(app.path.src.html)
.pipe(app.gulp.dest(app.path.build.html))
}
//path.js
import * as nodePath from 'path';
const rootFolder = nodePath.basename(nodePath.resolve());
const buildFolder = `./dist`;
const srcFolder = `./src`;
export const path = {
build: {
html: `${buildFolder}/`,
files: `${buildFolder}/files/`,
},
src: {
html: `${srcFolder}/*.html`,
files: `${srcFolder}/files/**/*.*`,
},
watch: {
files: `${srcFolder}/**/*.html`,
files: `${srcFolder}/files/**/*.*`,
},
clean: buildFolder,
buildFolder: buildFolder,
srcFolder: srcFolder,
rootFolder: rootFolder,
ftp: ``,
}
//gulpfile.js
import gulp from "gulp";
import { path } from "./gulp/config/path.js";
global.app = {
path: path,
gulp: gulp,
}
import { copy } from "./gulp/tasks/copy.js";
import { reset } from "./gulp/tasks/reset.js";
import { html } from "./gulp/tasks/html.js";
function watcher () {
gulp.watch(path.watch.files, copy)
gulp.watch(path.watch.html, html)
}
const mainTasks = gulp.parallel(copy, html);
//сценарий
const dev = gulp.series(reset, mainTasks, watcher);
gulp.task('default', dev);
UPD: как выяснилось на функционал того, что должны делать добавленые строки в html ошибка не влияет, но она не дает отслеживать дальнейшие действия тк watcher прекращает работу.
UPD2:если в сценарии gulpfile.js убрать watcher то ошибка пропадает