#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
его, чтобы понять, почему он включен.