gulp-uglify не работает

Вот мой репозиторий https://github.com/shellwe/QA_WP_Template

Если вам просто нужно было увидеть фрагмент кода; вот

gulp.task('uglify', function() {
      return gulp.src('js/all.min.js')
        .pipe(uglify())
        .pipe(gulp.dest('js/'));
});

Я запускаю gulp uglify и получаю следующие ошибки.

events.js:160
      throw er; // Unhandled 'error' event
      ^
 Error
    at new JS_Parse_Error (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:1534:18)
    at js_error (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:1542:11)
    at croak (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2089:9)
    at token_error (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2097:9)
    at unexpected (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2103:9)
    at semicolon (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2123:56)
    at simple_statement (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2314:73)
    at eval (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2183:19)
    at eval (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2136:24)
    at eval (eval at <anonymous> (C:\Users\sh3240\Documents\My Web Sites\wordpress\wp-content\themes\QA_WP_Template\node_modules\uglify-js\tools\node.js:28:1), <anonymous>:2904:23)

В большинстве примеров, которые я видел, были concat и uglify в одном процессе, но, поскольку часть concat работала, я разбил их на части, чтобы показать это. Я знаю, что с uglify что-то не так, я просто не могу понять, что я делаю неправильно.


person shellwe    schedule 08.07.2016    source источник


Ответы (1)


Ошибка, которую вы получаете, на самом деле мало что объясняет... Однако, согласно небольшой "документации" на npm.js из gulp-uglify,

Чтобы правильно обрабатывать ошибки с потоком Node, в этом проекте рекомендуется использовать pump

Вы можете прочитать на gulp-uglify и помпа.

Итак, я попробовал следующее:

# grab pump
npm install pump --save-dev

Затем в gulpfile.js я сделал следующее:

gulp.task('uglify2', function (cb) {
    pump([
        gulp.src('./js/all.min.js'),
        uglify(),
        gulp.dest('./js/')
    ],
    cb
    );
});

Ошибка, которую я получаю, которая, кстати, намного приятнее, чем ошибка, которую вы получаете, заключается в следующем:

введите здесь описание изображения

Похоже, проблема в строке 191< /strong>, что говорит о том, что что-то не так с вашим кодом, а не с вашей задачей gulp.

person goto1    schedule 08.07.2016
comment
Спасибо за примечания, я видел на их сайте, что они использовали насос, но в примерах я обнаружил, что у него нет насоса. Сначала я попытаюсь исправить код, а затем посмотрю на добавление насоса. Я только что скачал последнюю версию Bootstrap 4 и сохранил там символы подчеркивания js. Я еще ничего своего не сделал. Спасибо за вашу помощь! Я должен буду изучить решение этой ошибки. - person shellwe; 11.07.2016
comment
Без проблем! Вам не обязательно использовать насос, но, как видите, он точно показывает, в чем проблема... Я никогда не работал с WordPress, поэтому не совсем понимаю, что происходит. однако в этом JS-файле я вижу, что он использует новый синтаксис JavaScript, поэтому uglify он может не понравиться [?]; На самом деле, создайте себе простой файл сценария, который просто отображает какой-то текст в JavaScript, а затем испортите его, запустив вашу текущую задачу - я только что сделал, и это сработало... Это говорит о том, что что-то не так с вашим файл all.min.js - person goto1; 12.07.2016
comment
Спасибо, evvelss32, ничто из этого JS не имеет отношения к WordPress, отчасти это связано с тем, что у меня есть альфа-версия bootstrap 4, и мне интересно, есть ли там какой-то код, который вызывает проблемы, тем более мне интересно, использует ли он ES2015 в исходном коде. файлы, и мы должны сами преобразовать их в стандартный js. - person shellwe; 12.07.2016
comment
Да, мне самому было любопытно, поможет ли преобразование файла JS, и я даже пытался использовать gulp-babel - babeljs.io — еще один пакет для gulpnpmjs.com/package/gulp-babel - который преобразует новый синтаксис JS, но я все еще получал ошибки... Вы можете проверить это и попробовать сами, чтобы увидеть, какие ошибки он вам дает, но в основном это было та же самая строка/утверждение, которая ему не понравилась... Она могла бы загрузить 4, особенно если учесть, что это все еще альфа... - person goto1; 12.07.2016
comment
@ evvelss32 Я использую насос для отслеживания ошибок, но получаю Error: task completion callback called too many times эту ошибку. Не могли бы вы сообщить мне, как я могу это исправить. Вы сталкивались с этой проблемой? - person Mohan Singh; 31.08.2016