Ведение журнала консоли может быть полезным способом отладки приложений 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. Это избавляет от необходимости вручную удалять операторы консоли перед созданием производственного пакета или отправкой запроса на перенос.