Ведение журнала консоли может быть полезным способом отладки приложений JavaScript. Однако такие утверждения, как

console.log('something went wrong!');

в исходном коде может привести к тому, что опубликованное приложение будет выглядеть непрофессионально. Оставшиеся операторы консоли также могут представлять угрозу безопасности.

Один из способов автоматически предотвратить компиляцию консольных операторов в производственные сборки в приложениях с Babel - это использовать подключаемый модуль: babel-plugin-transform-remove-console. Этот плагин Babel автоматически удаляет операторы консоли из производственных сборок при компиляции кода.

Сначала установите и сохраните плагин как devDependency:

npm install babel-plugin-transform-remove-console --save-dev

Затем в файле конфигурации babel, таком как babel.config.js, добавьте babel-plugin-transform-remove-console в качестве подключаемого модуля. Если это первый и единственный плагин babel в проекте, будет работать следующее встроенное условие.

module.exports = {
  presets: [
    '@vue/app'
  ],
  plugins: process.env.NODE_ENV==='production' ? ["transform-remove-console"] : []
}

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

plugins = () => {
  const defaultPlugins = ["existing-plugin-1"];
  if (process.env.NODE_ENV === "production") {
    defaultPlugins.push("transforma-remove-console");
  }
}
module.exports = {
  presets: ["@vue/app"],
  plugins: plugins()
}

В этих методах babel-plugin-transform-remove-console включается в массив plugins только тогда, когда process.env.NODE_ENV === 'production' оценивается как true. Это избавляет от необходимости вручную удалять операторы консоли перед созданием производственного пакета или отправкой запроса на перенос.