Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.6K
Views
Uglify SyntaxError: Token inesperado: punc ())

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.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

// Actualizar

De los comentarios ~ @imolit

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 ).


Respuesta original antes de la actualización...

Espero que pueda inspirarse con esta solución que funciona con webpack. (Link abajo)

Simplemente enseñe UglifyJS ES6

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 --dev

paquete web

Para usarlo con webpack, instale también el complemento webpack

 npm install uglifyjs-webpack-plugin --save-dev yarn add uglifyjs-webpack-plugin --dev

luego 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

over 4 years ago · Santiago Trujillo Report

0

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

over 4 years ago · Santiago Trujillo Report

0

Agrega la dependencia babel-preset-es2015 para arreglar esto.

Y también agregue 'es2015' en el archivo .babelrc .

 json { "presets": ["es2015"] }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!