Webpack через пряжу: остановить процесс и выйти из кода 1 при предупреждении - PullRequest
0 голосов
/ 13 ноября 2018

Запустив процесс сборки с помощью Webpack, я получил несколько предупреждений. Я считаю, что это предупреждение об ошибке, и IMO, это должно остановить процесс сборки.

> yarn build:staging
yarn run v1.10.1
$ webpack --env.staging --env.NODE_ENV=staging
Version: webpack 4.23.1

[...]

[795] ./src/index.css 1.05 KiB {0} [built]
    + 793 hidden modules

WARNING in ./src/assets/banner/3.jpg
Module build failed (from ./node_modules/image-webpack-loader/index.js):
Error: Command failed: /home/circleci/repo/node_modules/mozjpeg/vendor/cjpeg
/home/circleci/repo/node_modules/mozjpeg/vendor/cjpeg: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory


    at Promise.all.then.arr (/home/circleci/repo/node_modules/imagemin-mozjpeg/node_modules/execa/index.js:236:11)
    at process._tickCallback (internal/process/next_tick.js:68:7)
@ ./src/assets/banner sync ^\.\/.*\.jpg$ ./3.jpg
@ ./src/scenes/home/index.js
@ ./src/router.js
@ ./src/index.js
@ multi babel-polyfill ./src/index.js

[...]

Done in 26.03s.

Это «предупреждение» должно остановить весь процесс и выйти. Есть ли способ указать веб-пакету с пряжей в качестве драйвера остановиться на определенном виде предупреждения (и вернуть код ошибки)? Мой процесс CI считает, что все в порядке, это не то поведение, которое я ожидал.

1 Ответ

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

Вы можете получить доступ к errors и warnings из экземпляра Webpack из его объекта stats и затем выбрать отклонение / выход из процесса: https://github.com/webpack/docs/wiki/node.js-api

Например:

if(stats.errors.length > 0 || process.warning.length > 0) {
  process.exit;
}

Если вы хотите выйти, начиная с первой ошибки, вы можете установить опцию bail в вашей конфигурации: https://webpack.js.org/configuration/other-options/#bail

...