ОШИБКА в 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.

Будьте здоровы увидеть репо или сущность.