Глотать с browserify, молча терпящим неудачу - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть проект, использующий Angular.js, для которого я давно создал несколько задач.Я недавно получил новый компьютер и попытался запустить его, но он молча потерпел неудачу (без ошибок в журнале) в моей задаче browserify.

gulp.task('imgs', ['html'], function () {
    return gulp.src(paths.img + '*')
        .pipe(gulp.dest(paths.dist_img));
});

gulp.task('browserify', ['imgs'], function () {
    return browserify(paths.src + 'index.js', {debug: true})
        .bundle()
        .pipe(source('index.js'))
        .pipe(gulpPlugins.rename('bundle.js'))
        .pipe(gulp.dest(paths.dist))
        .pipe(gulpPlugins.connect.reload());
});

gulp.task('copy-bootstrap-css', ['browserify'], function () {
    return gulp.src(paths.custom + "bootstrap/css/*.css")
         .pipe(gulp.dest(paths.dist_css));
});

Я какое-то время отлаживал это и заметил, что это не сработало, когда я закомментировал или переименовать канал, или dest-канал задачи browserify.Очевидно, что приложение не работает правильно, когда я делаю.Но я не мог найти фактическую причину, почему.

В конце концов в полном отчаянии я создал отдельную переменную для вывода browserify, а затем применил каналы:

gulp.task('browserify', ['imgs'], function () {
    var b = browserify(paths.src + 'index.js', {debug: true})
        .bundle();
    b.pipe(source('index.js'))
        .pipe(gulpPlugins.rename('bundle.js'))
        .pipe(gulp.dest(paths.dist))
        .pipe(gulpPlugins.connect.reload())
    return b;
});

Как ни странно, это "исправляет" это.Это означает, что задачи глотка по крайней мере выполняются полностью.Думаю, браузер по-прежнему не работает правильно, потому что в моем браузере есть «Неожиданный конец ввода» в bundle.js, но это может быть и другой проблемой.

У кого-нибудь есть идея, почему это «работает», когда я использую отдельную переменную для browserify.bundle ()?Любая идея, связана ли остающаяся проблема?

Так как это может иметь какое-то отношение к версиям: у меня есть следующие gulpPlugins в моем package.json, и я запускаю npm 6.4.1 и узел 11.3.0 намоя новая машина.

"devDependencies": {
    "browserify": "^13.1.1",
    "chai": "^3.5.0",
    "gulp": "^3.9.1",
    "gulp-angular-templatecache": "^2.0.0",
    "gulp-buffer": "0.0.2",
    "gulp-clean": "^0.3.2",
    "gulp-connect": "^5.0.0",
    "gulp-dest": "^0.2.3",
    "gulp-inject": "^4.2.0",
    "gulp-load-plugins": "^1.4.0",
    "gulp-rename": "^1.4.0",
    "gulp-rev-all": "^0.9.7",
    "gulp-rev-replace": "^0.4.3",
    "gulp-sass": "^3.1.0",
    "gulp-streamify": "^1.0.2",
    "gulp-util": "^3.0.7",
    "http-proxy-middleware": "^0.17.4",
    "mocha": "^3.2.0",
    "vinyl-source-stream": "^1.1.0"
}

Редактировать: Когда я вручную просматриваю файл index.js, это работает без проблем, и на выходе получается массивный файл из 64 тыс. Строк, в то время как один из моих задач gulp - только 1200.

1 Ответ

0 голосов
/ 30 ноября 2018

Я реструктурировал задачу browserify и удалил переименование, так как параметр имени файла в винил-исходном потоке уже делал переименование, мне это на самом деле не нужно:

gulp.task('browserify', ['imgs'], function () {
    var b = browserify();
    b.add(paths.src + 'index.js', {debug: true});
    var textStream = b.bundle();
    textStream
        .pipe(source('bundle.js'))
        .pipe(gulp.dest(paths.dist))
        .pipe(gulpPlugins.connect.reload())
    return b;
});

Обратите внимание, чтопростое удаление канала переименования и изменение имени файла исходного канала не помогло.По какой-то причине это привело к ошибке «нет такого файла или каталога».Я думаю, именно поэтому я добавил трубку переименования в первую очередь.

...