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

Meu bundle não está sendo minificado mas não apresenta nenhum erro

Boa tarde a todos!

Seguindo passo a passo os procedimentos passados pelo Instrutor Flávio, no final meu arquivo bundle.js deveria ser minificado, porém, ele não é.

Vejam meus códigos por favor:

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 --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.config.js

const path = require('path');
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'
                }
            }
        ]
    }
}

Aguardo retorno.

Grato

EDUARDO AGOSTINHO

4 respostas
solução!

Oi Eduardo tudo certo?

Nessa fase do projeto o flávio utiliza o babili-webpack-plugin no seu webpack.config, faltou importar o plugin e fazer a verificação:

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
}

depois dessa configuração feita, podemos rodar npm run dev e depois npm run prod e verificar se dentro do dist o arquivo está minificado

Prezado Felipe, boa tarde. Agradeço o retorno e a ajuda!

Efetuei a implementação que você sugeriu mas mesmo assim não minificou o arquivo. Quando implementei o código em desenvolvimento ele apresentou 2 erros conforme abaixo:

Na linha:

const path = require('path');

Na letra "r" do require o erro: var require: NodeRequire (id: string) => any File is a CommonJS module; it may be converted to an ES6 module.ts(80001) Quick Fix... (Ctrl+.)

Na linha:

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

Na 1a aspas simples antes do babili-webpack-plugin o erro: module "c:/Eduardo Agostinho/Programacao/Estudos/Alura/Webpack/client/nodemodules/babili-webpack-plugin/lib/index" Could not find a declaration file for module 'babili-webpack-plugin'. 'c:/Eduardo Agostinho/Programacao/Estudos/Alura/Webpack/client/nodemodules/babili-webpack-plugin/lib/index.js' implicitly has an 'any' type. Try npm i --save-dev @types/babili-webpack-plugin if it exists or add a new declaration (.d.ts) file containing declare module 'babili-webpack-plugin';ts(7016)

Desde já mais uma vez muito obrigado pela ajuda!

EDUARDO AGOSTINHO

Prezado Felipe, Bom dia!

Funcionou!!! Eu estava cometendo um erro no código aqui! Muito obrigado pela ajuda

Forte abraço!

EDUARDO AGOSTINHO

Que bom pode contar com a gente sempre que precisar.

Bons Estudos :)