web-dev-qa-db-fra.com

ERREUR dans bundle.js à partir de UglifyJs Nom attendu

J'essaie d'utiliser UglifyJS pour minimiser/compresser mon fichier bundle.js. Lorsque je lance webpack -p, j'obtiens les informations suivantes: 

ERROR in bundle.js from UglifyJs Name expected [bundle.js:105519,6]

La ligne 105519 est la suivante: 

const {M, l, pattern} = __webpack_require__(862).

J'utilise React w/ES6. Des idées sur ce qui ne va pas? 

18
Colby Cox

Chaque version de Webpack possède une version intégrée de UglifyJS (0.4.6) qui ne prend pas en charge ES6. Cette version ne supporte que la syntaxe ES5.

Il y a deux solutions possibles:

  • Transpiler target es5
  • N'utilisez pas la version intégrée de uglifyjs-webpack-plugin et installez la dernière version à l'aide de npm install -D uglifyjs-webpack-plugin. Ajoutez-le à votre propriété plugins dans votre configuration:

    const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
    
    module.exports = {
      plugins: [
        new UglifyJSPlugin()
      ]
    }
    
21
Michal Pietraszko

Cette erreur survient lorsque uglifyjs-webpack-plugin n'est pas capable de Uglify dépendance particulière

Alors, comment trouver la bibliothèque qui crée une telle erreur?

J'utilisais react, alors j'ai supprimé tous les formulaires de mon application et n'en ai gardé qu'un, j'ai importé toutes les dépendances qu'il contient et remove/add ces dépendances un par un Et exécuter la commande

webpack -p

SO Dans mon cas, il s'agissait de historique du navigateur créant une telle erreur. Vous pouvez maintenant signaler ce problème à l'auteur de cette bibliothèque avec un exemple de réplication

package de travail.json & .babelrc

0
vijay

Certainement un problème avec la version de uglifyjs et la cible javascript que vous essayez de compiler. Cela peut être causé par 2 choses, la configuration de votre webpack et votre configuration de Babel.

Si vous utilisez la dernière version de webpack v3.5.5 elle est livrée avec uglifyjs-webpack-plugin ^ 0.4.6 qui ne prend pas en charge une cible de es6 ou supérieure.

En se référant aux Webpack docs about UglifyjsWebpackPlugin options actuels, il explique comment utiliser la dernière version bêta de uglify-js-webpack-plugin v1.0.0-beta.2 . Mais n'est-ce pas clair sur la façon d'installer cette version.

Pour l'utiliser avec le Webpack, faites

yarn add uglifyjs-webpack-plugin@beta --dev

Comme vous ne mentionnez pas votre configuration Babel. Vous pourriez être ou vouloir utiliser babel-preset-env comme préréglage. Il y a une option pour uglifyjs .

Soyez formidable de voir un repo ou un Gist.

0
andykenward