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

Error: Couldn't find preset "es2017"

Na aula "Babel-loader, a ponte entre o Webpack e o Babel" quando executo o comando "npm run build-dev" me aparecer a seguinte mensagem de erro.

ERROR in ./app-src/app.js
Module build failed: Error: Couldn't find preset "es2017" relative to directory "C:\\Users\\u110401\\Documents\\Node\\WebPack\\projeto-webpack\\client"
    at C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\options\option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20)
    at OptionManager.mergePresets (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10)
    at OptionManager.mergeOptions (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14)
    at OptionManager.init (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12)
    at File.initOptions (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\index.js:212:65)
    at new File (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\file\index.js:135:24)
    at Pipeline.transform (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-core\lib\transformation\pipeline.js:46:16)
    at transpile (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-loader\lib\index.js:49:20)
    at Object.module.exports (C:\Users\u110401\Documents\Node\WebPack\projeto-webpack\client\node_modules\babel-loader\lib\index.js:171:20)

Meu código

Babelrc

{
    "presets":["es2017"],
    "plugins" : ["transform-decorators-legacy"]
}

package

{
  "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"
  },
  "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",
    "webpack": "^3.1.0"
  }
}

webpack.config

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'
              }
            }
        ]
    }
}

Tentei corrigir mas não obtive sucesso. Alguém tem ideia do problema?

7 respostas

Você criou o arquivo webpack.config.js dentro de qual pasta? Se não estiver dentro de client/webpack.config.js nada funcionará.

Compartilhe a sua versão do Node.js.

Outro problema é que você talvez não tenha executado comando npm install dentro do projeto, assim que o baixou e o descompactou, fazendo assim com que os módulos do preset não estivesse disponibilizado para a aplicação.

Testei aqui mais uma vez e tudo funcionou como esperado.

Confira os passos que você deve executar no exercício obrigatório do capítulo:

https://cursos.alura.com.br/course/webpack/task/30472

Chuto é foi isso, porque consegui simular o mesmo erro omitindo o npm install. Para resolver, entre dentro da pasta client e execute npm install.

Fala Flavio!

Já encontrei o erro!

Meu arquivo package constava o "babel-preset-es2017" mas a pasta do modulo não existia dentro da pasta do node_module.

Fiz o comando "npm uninstall "babel-preset-es2017 --save-dev" para remover qualquer rastro que tenha ficado. Logo depois fiz a instalação novamente.

Depois disso fiz o "npm run build-dev" e funcionou!

solução!

Olá, você vez um passo que não deveria fazer. Sugiro começar novamente do zero, pois esta logo no início do curso.

Siga os passos do exercício obrigatório do capítulo:

https://cursos.alura.com.br/course/webpack/task/30472

Descompacte o projeto, execute npm install e a partir dai continue o curso e poderá fazer isso sem te atrasar.

O comando que você vez instalará um preset mais novo que não foi homologado por mim. Muito cuidado, porque se sair uma versão nova do Babel e você usar o comando como acabou de fazer quebrará seu projeto inteiro.

Seu problema, foi não ter feito npm install dentro da pasta client assim que baixou o projeto. Simulei isso aqui e o erro foi o mesmo que você apresentou.

Resumindo: comece do zero, faça npm install e continue o curso para não ter surpresa.

Segue a minha sugestão para ficar tudo lindo e bonito e você poder ir até o final sem surpresas. Aguardo seu retorno!

Flavio,

eu refiz a instalação do webpack versão 3.1.0 para corrigir o problema. hehe

Baixou o projeto e fez npm install, certo? Você só pode dar início às alterações com as dependências baixadas.

Curiosidade. O projeto tem babel porque um projeto com React provavelmente fará uso do babel e o aluno precisa saber como lidar com babel dentro do webpack. (Webpack é usado com apps React).

Sucesso e bom estudo meu aluno. Torço para que se torne um cangaceiro em webpack.

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