Angular 2 / Webpack - параметры CLI не работают - PullRequest
0 голосов
/ 05 октября 2018

Я хочу передать параметры моих скриптов веб-пакета из командной строки

CLI -> NPM -> package.json -> WEBPACK

Большинство сообщений, которые я нашел, относятся только к настройке параметров в package.json

package.json -> WEBPACK

Iпросто не могу заставить его работать

в моем package.json, я сначала попробовал

"build": "webpack -- --test",
"build": "webpack -- test",
"build": "webpack test",

Я получаю ошибки типа

ERROR in Entry module not found: Error: Can't resolve 'test'
ERROR in Entry module not found: Error: Can't resolve '--test'
  • мне сделать эту работу?
  • как сделать так, чтобы это тестовое значение передавалось через командную строку при запуске npm?
  • я должен использовать process.env или argv для получения переданного параметра?

спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

ответ

CLI:

npm run build -- --env.something=true

package.json:

"build": "webpack"

webpack.config.js:

module.exports = function(env) {

  if (env.something=== 'true') {
   ...
0 голосов
/ 05 октября 2018

Вы можете использовать пакет узла argv для передачи аргумента командной строки - https://www.npmjs.com/package/argv

или

Вы можете передать --env = test, например, через командную строку, а затем вы можете экспортироватьфункция env, которая возвращает непосредственно вместо объекта https://webpack.js.org/configuration/configuration-types/#exporting-a-function-to-use-env

sample

Пользовательские аргументы могут передаваться через префикс --env, т.е. --env.compress,Чем экспортировать функцию из webpack.config.js и вызывать ее с параметром env.

module.exports = function(env) {
  // ...
  if (env.compress === 'true') {
    var CompressionPlugin = require('compression-webpack-plugin');
    config.plugins.push(
        new CompressionPlugin({
            asset: '{file}',
            algorithm: 'gzip',
            regExp: /\.js$|\.html$/
        }))
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...