Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

ERROR in bundle.js from UglifyJs Unexpected token: name (e) [bundle.js:1,549]

Olá, eu fiz as alterações e instalações, mas ainda tenho erro com o UglifyJs.

package.json

{
  "name": "client",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build-dev": "webpack --config webpack.config.js",
    "build-prod": "cross-env NODE_ENV=production webpack -p --config webpack.config.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "reflect-metadata": "^0.1.10"
  },
  "devDependencies": {
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.0",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-es2017": "^6.24.1",
    "babili-webpack-plugin": "^0.1.1",
    "cross-env": "^5.0.1",
    "webpack": "^3.1.0"
  }
}

webpack

const path = require('path');
const babiliPlugin = require('babili-webpack-plugin');

let plugins = [];

if(process.env.NODE_ENV == 'production') {

    plugins.push(new babiliPlugin());
}

module.exports = {
    entry: './app-src/app.js',
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    },
    module:{
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader'
                }
            }
        ]
    },
    plugins
}
4 respostas
solução!

Bom dia minha aluna! Você manteve o parâmetro -p no seu script! Quando você o criou era justamente para não ter que usar esse parâmetro. Usaremos babili no lugar de uglify.

Esta assim no seu código:

"build-prod": "cross-env NODE_ENV=production webpack -p --config webpack.config.js"

O correto é sem o -p.

Sucesso e bom estudo!

Boa tarde, entendi, obrigada. Não tem como desinstalar o Uglify? -p, significa o que?

No vídeo eu explico que -p é para disparar o build de produção. Apenas builds de produção são minificados. Todavia, o padrão do Webpack é usar o Uglify e ele não suporta a sintaxe do ES2015 (ES6). Só na versão 4 alpha do Webpack que ainda demorará para sair é que eles incorporaram um Uglify que suporta a sintaxe do ES2015.

Infelizmente não tem como remover o uglify que já vem com o Webpack. Porém, você aprendeu a contornar isso abdicando do -p e você mesmo criando seu script para produção.

Sucesso e bom estudo minha aluna.

Muito obrigada.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software