Estoy tratando de usar trago para minimizar una carpeta que contiene archivos JS. Sin embargo, uno de los archivos tiene el error anterior, lo que impide que se minimice.
Me las arreglé para atrapar e imprimir el error, que he impreso parcialmente aquí:
JS_Parse_Error { message: 'SyntaxError: Unexpected token: punc ())', filename: 'ex.js', line: 189, col: 25, pos: 6482, stack: Error\n at new JS_Parse_Error (eval at <anonymous> ... ) plugin: 'gulp-uglify', fileName: '.../js/ex.js', showStack: false }El archivo en cuestión contiene lo siguiente, abreviado:
function() { ... $.confirm({ buttons: { confirm: function() { $.post('/ajax-handler', { ... }) .done( function(response) { var data = filterResponse(response); if (data['status'] == 'success') { sleep(1000).then(() => { * ... }); sleep(5000).then(() => { ... }); } else { console.log('Oops!'); } }) .fail( function(err, status, response) { ... }); }, cancel: function() {} } }); ... }Agregué el "*" arriba para indicar la posición exacta enumerada por JS_Parse_Error.
v2.0.0 (2018-09-14) - CAMBIOS IMPORTANTES (enlace)
Vuelva a uglify-js (uglify-es está abandonado, si necesita el código uglify ES6, use terser-webpack-plugin ).
Espero que pueda inspirarse con esta solución que funciona con webpack. (Link abajo)
Hay dos versiones de UglifyJS - ES5 y ES6 (Harmony), ver en git
La versión ES5 viene de forma predeterminada con todos los complementos, pero si instala una versión de Harmony explícitamente, esos complementos la usarán en su lugar.
paquete.json
"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony"o
npm install --save uglify-js@github:mishoo/UglifyJS2#harmony yarn add git://github.com/mishoo/UglifyJS2#harmony --devPara usarlo con webpack, instale también el complemento webpack
npm install uglifyjs-webpack-plugin --save-dev yarn add uglifyjs-webpack-plugin --devluego importe el complemento instalado manualmente
var UglifyJSPlugin = require('uglifyjs-webpack-plugin');y reemplazarlo en el código
- new webpack.optimize.UglifyJsPlugin({ ... }) + new UglifyJSPlugin({ ... })Para obtener más información sobre el paquete web (instalación/uso), consulte https://github.com/webpack-contrib/uglifyjs-webpack-plugin#install
npm install uglifyjs-webpack-plugin --save-dev no es suficiente
El problema principal es "uglifyjs-webpack-plugin": "^0.4.6" en el paquete webpack.json
Según semver , ^0.4.6 := >=0.4.6 <0.5.0 . Debido al cero inicial, webpack nunca usará 1.0.0-beta.2 .
Entonces, después de ejecutar npm i -D uglifyjs-webpack-plugin@beta , debe realizar un paso más, que es rm -rf node_modules/webpack/node_modules/uglifyjs-webpack-plugin . Luego, webpack recogerá la versión de node_modules/uglifyjs-webpack-plugin en lugar de node_modules/webpack/node_modules/uglifyjs-webpack-plugin
Actualización el 2018-04-18: webpack v4 no tiene este problema
Agrega la dependencia babel-preset-es2015 para arreglar esto.
Y también agregue 'es2015' en el archivo .babelrc .
json { "presets": ["es2015"] }