Как показать ошибки webpack в gulp - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть проект TypeScript, который передается с веб-пакетом, а задачи сборки выполняются gulp. Возьмите эту простую задачу, чтобы продемонстрировать мой вопрос:

var webpack = require('webpack');
var webpackStream = require("webpack-stream");

gulp.task("check", function() {
        return gulp.src("*")
            .pipe(webpackStream(require("./webpack.config.js"), webpack))
            .pipe(gulp.dest(OUTPUT_DIR));
    }
);

Теперь, когда все хорошо, gulp check работает нормально. Теперь предположим, что я допустил какую-то ошибку в кодировании - это задание gulp будет выдавать:

[10:20:02] Starting 'check'...
[hardsource:chrome] Tracking node dependencies with: yarn.lock.
[hardsource:chrome] Reading from cache chrome...
(node:20232) UnhandledPromiseRejectionWarning
(node:20232) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:20232) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[10:20:08] The following tasks did not complete: check
[10:20:08] Did you forget to signal async completion?

Что очень неинформативно. Если я удаляю .pipe(gulp.dest(OUTPUT_DIR)); из задачи проверки, я получаю исходное сообщение об ошибке. Например:

[10:35:42] Starting 'check'...
[hardsource:chrome] Tracking node dependencies with: yarn.lock.
[hardsource:chrome] Reading from cache chrome...
[10:35:48] 'check' errored after 5.96 s
[10:35:48] Error in plugin "webpack-stream"
Message:
    ./myfile.ts
Module build failed: Error: Typescript emitted no output for C:\Projects\myfile.ts.
    at successLoader (C:\Projects\***\node_modules\ts-loader\dist\index.js:41:15)
    at Object.loader (C:\Projects\***\node_modules\ts-loader\dist\index.js:21:12)
 @ ./src/background/background.ts 16:25-54
 @ multi ./src/background/backgroundC:\Projects\***\src\myfile.ts
./src/myfile.ts
[tsl] ERROR in C:\Projects\***\src\myfile.ts(305,28)
      TS2345: Argument of type 'number | undefined' is not assignable to parameter of type 'number'.
  Type 'undefined' is not assignable to type 'number'.
Details:
    domainEmitter: [object Object]
    domain: [object Object]
    domainThrown: false

Добавление каналов в gulp-load-plugins.logger до или после webpackStream не помогает. Могу ли я передать поток gulp в gulp.dest и получить информативные сообщения об ошибках веб-пакета? Как?

1 Ответ

0 голосов
/ 20 сентября 2018

Я публикую решение вместо того, чтобы удалять вопрос, на случай, если оно пригодится кому-то в будущем.

В нашем случае проблемой оказалось использование ускорителя сборки webpack под названием hard-source-webpack-plugin . Очевидно, это известная проблема - и ссылка на github содержит потенциальный обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...