Вавилон-автономный существует в производственном комплекте

#webpack #babeljs #babel-polyfill

Вопрос:

После сборки в производственном режиме babel-standalone в моем пакете есть модуль. Но я никогда не устанавливал это babel-standalone вручную. И его нет ни в package.json том, ни в другом. Но я установил babel-polyfill в этом проекте, babel-standalone поставляется ли с babel-polyfill? Как я могу удалить этот модуль из пакета, чтобы уменьшить размер производственного пакета?

Снимок экрана с webpack-bundle-analyzer такого:

введите описание изображения здесь

Ответ №1:

babel-polyfill это не зависит от babel-standalone . Есть что-то еще, что его импортирует. Вы можете запустить npm ls babel-standalone или yarn why babel-standalone посмотреть, почему он установлен.

Выяснив, почему babel-standalone он включен в ваш пакет, если вы уверены, что он не нужен ни вам, ни вашим зависимостям (он используется для компиляции кода JS на лету в браузере, а не во время сборки), вы можете удалить его с помощью веб-пакета null-loader :

   rules: [
    {
      // Adjust this path to match the path of the imported babel-standalone file
      test: path.resolve(__dirname, 'node_modules/babel-standalone/babel.js'),
      use: 'null-loader',
    },
  ]
 

Комментарии:

1. Спасибо за ваш ответ! Но после того , как я бегу npm ls babel-standalone , результат оказывается пустым. Я отредактирую свой вопрос для получения некоторых подробностей. Не могли бы вы помочь мне немного проверить ?

2. Из первоначального ответа я предполагаю, что пакеты, которые вы видели, были babel-standalone и не @babel/standalone были . Вы можете использовать npm ls @babel/standalone его, чтобы понять, почему он включен.