Я пытаюсь запустить задачу 'rundev' в следующем коде gulp, но он продолжает вызывать зависание моего процесса Node / Gulp.Я не могу отменить их, не перезагружая компьютер, поэтому отследить проблему оказалось трудно.
const gulp = require("gulp");
const concat = require("gulp-concat");
const uglify = require("gulp-uglify");
const uglifycss = require("gulp-uglifycss");
const del = require("del");
const sass = require('gulp-sass');
const streamqueue = require('streamqueue');
const gzip = require('gulp-gzip');
const compression = require('compression');
const browserSync = require("browser-sync").create();
const scripts = require("./scripts");
const styles = require("./styles");
var devMode = false;
gulp.task("html", function() {
gulp.src("./src/html/**/*.html")
.pipe(gulp.dest("./dist/"))
/*.pipe(gzip({extension: 'gz'}))
.pipe(gulp.dest("./dist/"))*/
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task("css", function() {
var cssRaw = gulp.src(styles["css"])
.pipe(uglifycss());
var cssFromSass = gulp.src(styles["scss"])
.pipe(sass({outputStyle: 'compressed'}));
return streamqueue({objectMode: true},
cssFromSass,
cssRaw)
.pipe(concat("allStyles.min.css"))
.pipe(gulp.dest("./dist/css"))
/*.pipe(gzip({extension: 'gz'}))
.pipe(gulp.dest("./dist/css"))*/
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task("js", function() {
var jsMin = gulp.src(scripts["min"]);
var jsOther = gulp.src(scripts["other"])
.pipe(uglify());
return streamqueue({objectMode: true},
jsMin,
jsOther)
.pipe(concat("allScripts.min.js"))
.pipe(gulp.dest("./dist/js"))
/*.pipe(gzip({extension: 'gz'}))
.pipe(gulp.dest("./dist/js"))*/
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task("fonts", function() {
gulp.src(["./src/fonts/**/*.eot",
"./src/fonts/**/*.svg",
"./src/fonts/**/*.ttf",
"./src/fonts/**/*.woff",
"./src/fonts/**/*.woff2"])
.pipe(gulp.dest("./dist/fonts"))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task("images", function() {
gulp.src(["./src/images/**/*.*"])
.pipe(gulp.dest("./dist/images"))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task("sounds", function() {
gulp.src(["./src/sounds/**/*.*"])
.pipe(gulp.dest("./dist/sounds"))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task("clean", function() {
return del('./dist/**', {read: false});
});
gulp.task("build", ['clean'], function() {
gulp.start(["css", "js", "html", "fonts", "images", "sounds"]);
});
gulp.task("browser-sync", function() {
browserSync.init(null, {
open: false,
server: {
baseDir: "dist",
middleware: compression()
}/*,
httpModule: 'http2',
https: true*/
});
});
gulp.task("rundev", function() {
devMode = true;
gulp.start(["build", "browser-sync"]);
gulp.watch(["./src/css/**/*.css", "./src/css/**/*.scss"], ["css"]);
gulp.watch(["./src/js/**/*.js"], ["js"]);
gulp.watch(["./src/html/**/*.html"], ["html"]);
gulp.watch(["./src/fonts/**/*.*"], ["fonts"]);
});
Я недавно поднял этот проект после долгого перерыва и с тех пор не трогал кодУ меня никогда не было этой проблемы раньше.
У меня есть эта проблема, когда я пытаюсь запустить 'gulp rundev' в моем окне Git Bash.Кажется, что он завершается без ошибок, но на самом деле никогда не обслуживает файлы, и я не могу использовать окно Git Bash или даже закрыть его впоследствии (ни одна из этих работ: нажатие выхода, Alt + F4 или завершение процесса в диспетчере задач).Единственный способ избавиться от него - перезагрузить компьютер.Я использую Windows 10, Node v8.9.4, Gulp v3.9.1, Brackets и Git Bash в качестве среды разработки на случай, если это поможет.
Вот копия вывода:
MyName@MyComputer MINGW64 ~
$ cd Documents/GitHub/PoeFilterEditor
MyName@MyComputer MINGW64 ~/Documents/GitHub/PoeFilterEditor (Development)
$ gulp rundev
[12:11:27] Using gulpfile ~\Documents\GitHub\PoeFilterEditor\gulpfile.js
[12:11:27] Starting 'rundev'...
[12:11:27] Starting 'clean'...
[12:11:27] Starting 'browser-sync'...
[12:11:27] Finished 'browser-sync' after 114 ms
[12:11:28] Finished 'rundev' after 816 ms
[Browsersync] Access URLs:
--------------------------------------
Local: http://localhost:3000
External: http://192.168.1.142:3000
--------------------------------------
UI: http://localhost:3001
UI External: http://192.168.1.142:3001
--------------------------------------
[Browsersync] Serving files from: dist
Я помню, что получал больше строк «Начальная» и «Завершенная» в выходных данных для других задач, которые вызываются «rundev», но в остальном выходные данные выглядят нормально.
Поскольку «чистая» задача никогда не отображается как «Завершенная», я предполагаю, что проблема как-то связана с этим, и мое исследование, похоже, показывает, что проблема связана с разрешениями или блокировкой файлов при попыткеоперировать им.С этой целью я попытался возиться с devMode, закрыв все программы, кроме Git Bash, для вызова задачи и убедившись, что все работает с правами администратора, но всегда зависает.
Янемного нового для Node и Gulp, так что может быть что-то явно очевидное, о чем я даже не знаю, о чем спрашивать, так что, надеюсь, кто-то здесь может помочь мне узнать мой путь через это.