Удаление console.log в производственной среде React JS с WebPack / Babel - PullRequest
0 голосов
/ 30 мая 2018

Я хотел бы сохранить console.log в сборках для разработчиков, но в производственных сборках я хочу, чтобы они были удалены.

babel-plugin-transform-remove-console

Не помню, установил ли я его как --saveили --save-dev (и не совсем уверенная разница).Я также не знаю, как проверить, как он был установлен, но он находится в моем каталоге node_modules как babel-plugin-transform-remove-console.

. Использую ли я npm run dev или npm run build для создания своего проекта, я все еще вижу консоль.log заявления.Я ожидал, что команда npm run build удалит файлы console.log.

Мой файл .babelrc выглядит следующим образом:

{
  "presets" : ["env", "stage-0", "react"],
  "env" : {
    "production": {
      "plugins": ["transform-remove-console"]
    }
  }
}

Соответствующие части моего package.json выглядят какэто:

  "scripts": {
    "dev": "webpack -d --watch",
    "build": "webpack -p"
  },
  ...
  "dependencies": {
    ...
    "babel-plugin-transform-remove-console": "^6.9.2",
    ...
  }

Почему npm run build не удаляет для меня операторы console.log?

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

-p - это флаг самого Webpack.Бабель ничего не знает об этом.Если вы хотите, чтобы конфигурация Webpack переключала поведение на его основе, вам нужно сделать это самостоятельно.

// webpack.config.js
module.exports = function(env) {
  return {
    // ...
    module: {
      rules: [{
        loader: "babel-loader",
        options: {
          forceEnv: env.production ? "production" : "development"
        }
      }],
    },
  },
};
0 голосов
/ 14 сентября 2018

Не могу вспомнить, установил ли я его как --save или --save-dev (и не совсем уверен, что разница).

Просто посмотрите на ваш файл package.json!

-- save заставит ваш пакет появиться в зависимостях (это поведение по умолчанию, если ни одна опция не былапредоставлено способом)

--save-dev заставит ваш пакет появиться в devDependencies

https://docs.npmjs.com/cli/install

0 голосов
/ 30 мая 2018

Когда вы используете прогон webpack -p, веб-пакет устанавливает process.env.NODE_ENV = "production", но Бабель ожидает process.env.BABEL_ENV = "production".

...