Tengo un paquete nodejs escrito con funcionalidades ES6 como 'let', el operador de propagación (...) y los valores predeterminados de los argumentos de una función.
El caso es que cuando ejecuto npm run production de Laravel Mix, aparece un error, que es el siguiente:
ERROR Failed to compile with 1 errors error /js/app.js from UglifyJs Unexpected token: name (DateTime) [./~/vdatetime/src/datetime.js:3,0] [/js/app.js:40347,4] npm ERR! Linux 4.4.0-72-generic npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "production" npm ERR! node v7.4.0 npm ERR! npm v4.1.2 npm ERR! code ELIFECYCLE npm ERR! @ production: `cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules -- config=node_modules/laravel-mix/setup/webpack.config.js` npm ERR! Exit status 2 (Parece ser el operador let que está en causa en la línea 3)
Pero cuando pruebo npm run dev , todo funciona según lo previsto. ¿Alguna idea de por qué no puede transpilar el código?
Uglify no puede analizar ES6, generará errores de sintaxis. Convierta primero a ES5, post-procese su JS generado con babel, o use un minificador diferente.