Плагин Babel transform-remove-console не работает с Vue CLI 4 @vue/cli-plugin-babel/preset?

С помощью проекта VueJS, созданного Vue CLI 4, вы можете настроить Babel с помощью этого удобного пресета в babel.config.js:

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset',
  ],
};

Я пытаюсь использовать https://babeljs.io/docs/en/babel-plugin-transform-remove-console для удаленияconsole.* из встроенных файлов JS.

Установил плагин как зависимость разработчика: npm i -D babel-plugin-transform-remove-console

Затем модифицировал babel.config.js:

module.exports = (api) => {
  var env = api.cache(() => process.env.NODE_ENV);
  var plugins = [];
  // Change to 'production' when configs are working
  if (env === 'development') {
    plugins.push(['transform-remove-console', { exclude: ['error', 'warn'] }]);
  }
  return {
    presets: ['@vue/cli-plugin-babel/preset'],
    // plugins,
    // Doesn't work even when always on?
    plugins: ['transform-remove-console'],
  };
};

Это должно работать, запустив npm run serve -- --reset-cache, и я также много раз пытался создать приложение в разных средах, но журналы консоли все еще отображаются в консоли браузера?

Предустановка Vue CLI каким-то образом смешивает его из-за невозможности устанавливать плагины через этот файл конфигурации?

ОБНОВЛЕНИЕ: Создал отчет об ошибке для репозитория Vue CLI, и при создании репозитория с минимальным воспроизведением ошибок я обнаружил, что этот плагин работает с новым проектом.

Однако я понятия не имею, что вызывает это, поскольку я синхронизировал это приложение с новейшим загружаемым шаблоном CLI, а также попытался очистить кеш NPM с помощью `npm cache clean --force.

2 ответа

Решение

Кажется, предложение @Zydnar о ядерной бомбардировке node_modulesпапка, возможно, помогла, однако я также обнаружил, что мои недавние обновления пакетов NPM были прерваны и не были полностью успешными. Были некоторые плагины Vue CLI разных версий.

После атомной бомбардировки node_modules и обновив все пакеты, этот плагин Babel начал работать!

Я столкнулся с той же проблемой. Это не сработало:

      plugins: ['transform-remove-console']

Но это сработало:

      plugins: [['transform-remove-console', { exclude: ['error', 'warn'] }]]

Надеюсь, это поможет другим, кто столкнется с той же проблемой.

Другие вопросы по тегам