ОШИБКА в bundle.js от UglifyJs. Имя ожидается
Я пытаюсь использовать UglifyJS для минимизации/сжатия моего файла bundle.js
. Когда я запускаю webpack -p
, я получаю следующее:
ERROR in bundle.js from UglifyJs
Name expected [bundle.js:105519,6]
Строка 105519 выглядит следующим образом:
const {M, l, pattern} = __webpack_require__(862)
.
Я использую React w/ES6. Любые мысли о том, что не так?
Ответы
Ответ 1
Каждая версия Webpack имеет встроенную версию UglifyJS (0.4.6), которая не поддерживает ES6. Эта версия поддерживает только синтаксис ES5.
Существует два возможных решения:
- Сделать цель транспилятора
es5
-
Не используйте встроенную версию uglifyjs-webpack-plugin
и установите последнюю версию с помощью npm install -D uglifyjs-webpack-plugin
. Добавьте его в свое свойство plugins
в вашей конфигурации:
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
plugins: [
new UglifyJSPlugin()
]
}
Ответ 2
Эта ошибка возникает, когда uglifyjs-webpack-plugin не в состоянии Uglify конкретной зависимости
Итак, как найти библиотеку, которая создает такую ошибку?
Я использовал "Реакцию", поэтому я удалил все формы в своем приложении, сохранил только одну форму, импортировал в нее все зависимости, удалил/добавил эти зависимости одну за другой и выполнил команду
webpack -p
SO В моем случае это была история браузера, создавшая такую ошибку. Теперь вы можете сообщить об этой проблеме автору библиотеки с помощью некоторого реплицирующего примера.
рабочий Package.json &.babelrc
Ответ 3
Определенно проблема с версией uglifyjs и целью javascript, с которой вы пытаетесь скомпилировать. Это может быть 2 вещи, настройка вашего веб-пакета и настройка вашего Babel, вызывающие это.
Если вы используете последнюю версию webpack v3.5.5, она поставляется с uglifyjs-webpack-plugin ^ 0.4.6, который не поддерживает цель es6 или выше.
Ссылаясь на текущий Webpack docs о UglifyjsWebpackPlugin в нем описывается, как использовать последнюю бета-версию uglify-js-webpack-plugin v1.0.0-beta.2. Но разве не ясно, как установить эту версию.
Чтобы использовать его с Webpack do
yarn add [email protected] --dev
Как вы не упомянули, что такое ваша настройка Babel. Возможно, вы захотите или хотите использовать babel-preset-env
в качестве своего пресета. Существует опция для uglifyjs.
Будьте здоровы увидеть репо или сущность.