Erro: Não foi possível encontrar a predefinição “es2015” relativa ao diretório “/ Usuários / nome de usuário”

84

Recebo o seguinte erro ao tentar usar o gulp-babel:

Erro: não foi possível encontrar a predefinição "es2015" relativa ao diretório "/ Usuários / nome de usuário"

Tenho a predefinição es2015 instalada globalmente e localmente, então não consigo ver por que isso seria um problema.

Abaixo está meu gulp set up e package.json.

var babel = require('gulp-babel');
var es2015 = require('babel-preset-es2015');

gulp.task('babel', function() {
    return gulp.src('./app/main.js')
    .pipe(babel({
        presets: [es2015]
    }))
    .pipe(gulp.dest('dist'));
});

Package.json

  "devDependencies": {
    "babel-preset-es2015": "^6.3.13",
    "babel-preset-es2015-node5": "^1.1.1",
    "browser-sync": "^2.11.0",
    "gulp": "^3.9.0",
    "gulp-babel": "^6.1.1",
    "gulp-stylus": "^2.2.0"
  }

Estou usando o node v5.1.0 e o babel v6.4.0

Aqui está a saída do terminal

saída do terminal

Brian Douglas
fonte
Acho que você precisa passar uma string no presetsarray, tipo ['es2015'], não tenho muita certeza
thefourtheye
@thefourtheye Obrigado, mas o mesmo problema que uma string.
Brian Douglas de
Você não exigiu gole. Talvez essa possa ser a causavar gulp = require('gulp');
Andrei CACIO
@AndreiCacio Eu incluí o gulp que não está no trecho de código. Incluí apenas o código relevante para o compilador babel.
Brian Douglas
3
Por acaso você tem um .babelrcarquivo em seu diretório inicial? Visto que é de onde ele está procurando o preset, isso significa que é daí que vem a configuração.
loganfsmyth de

Respostas:

115

Você só precisa instalar babel-preset-es2015:

Exemplo de uso da CLI:

npm install babel-cli babel-preset-es2015
88mary256
fonte
3
isso resolveu para mim ... WoW que mensagem de erro terrível: Erro: Não foi possível encontrar o preset "es2015" relativo ao diretório "/ caminho / para / nó / pacote / tentativa / para / instalar" ... especialmente doloroso quando tentando instalar algum pacote npm aleatório que usa gulp e babel
Scott Stensland
2
npm WARN obsoleto [email protected]: 🙌 Obrigado por usar o Babel: recomendamos usar o babel-preset-env agora: leia babeljs.io/env para atualizar!
Syed
Muito obrigado por esta solução incrível.
Pawan de
12

o "es2015" em:

    .pipe(babel({
        presets: ['es2015']
    }))

é na verdade um caminho - então, se você não tiver a predefinição no diretório / Usuários / nome de usuário / es2015, você deve apontar exatamente para ele, como por exemplo:

.pipe(babel({
    presets: ['../../gulp/node_modules/babel-preset-es2015']
}))

funcionou para mim

Picard
fonte
também funcionou para mim usando um caminho absoluto para a pasta "babel-preset-es2015"
valkalon
Isso pode parecer muito simplista, então estou apenas adicionando como um comentário, mas certifique-se de soletrar tudo certo. Eu tinha o rótulo 'es2105' com os dígitos transpostos e isso me fez coçar a cabeça por um tempo.
Robert Oschler
12

Para corrigir esse problema, você deve remover o arquivo .babelrc (oculto) do diretório "/ Users / username".

Ihor Khomiak
fonte
Perfeito. este é realmente um problema muito oculto. Resolvido para mim
Amgad
8

Acabei de usar exatamente este gulpfile.js

var babel = require('gulp-babel');
var es2015 = require('babel-preset-es2015');
var gulp = require('gulp');

gulp.task('babel', function() {
    return gulp.src('./app/main.js')
    .pipe(babel({
        presets: [es2015]
    }))
    .pipe(gulp.dest('dist'));
});

e funcionou para mim. Eu só instalado babel, babel-preset-es2015e gulp-babel.

Andrei CACIO
fonte
Você poderia me dizer sua versão de babel e node. Eu tenho a mesma configuração que você pode ver. mas ainda assim o mesmo erro
Brian Douglas
Estou usando o node 4.0 e o babel 6
Andrei CACIO
Descrição atualizada com saída de terminal
Brian Douglas
Pode ser um problema relacionado ao Windows ou algo parecido. Eu encontrei um tópico semelhante que você pode conferir: github.com/laravel/elixir/issues/354 talvez ele esclareça o problema.
Andrei CACIO
1
Carregar babel-preset-es2015explicitamente conforme mostrado aqui resolveu meu problema.
givemesnacks de
7

Verifique se você possui o arquivo .babelrc na pasta raiz do seu projeto. Caso contrário, crie o arquivo .babelrc e adicione o seguinte:

{
  "presets": ["es2015"]
}

Ele corrigiu o problema.

Jeyenth
fonte
Salvei meu dia! Obrigado
Mehrnoosh de
6

Você pode tentar instalar es2015e stage-2via

npm i babel-preset-es2015 --save
npm i babel-preset-stage-2 --save
Sareek
fonte
4

Eu encontrei o mesmo problema porque eu tinha um .babelrcarquivo na raiz do meu diretório.

Para corrigir esse acréscimo babelrc: falsenas opções do babel:

var babel = require('gulp-babel');

gulp.task('babel', function() {
    return gulp.src('./app/main.js')
    .pipe(babel({
        babelrc: false,
        presets: ['babel-preset-es2015']
    }))
    .pipe(gulp.dest('dist'));
});
Tom Van Rompaey
fonte
1 eu encontrei um .babelrcarquivo na minha raiz e esse era o problema. a configuração babelrc: falseparece não funcionar, mas quando excluo tudo funciona!
overallduka
3

Eu tive o mesmo problema, e essa segunda sugestão me ajudou a perceber o meu problema e talvez seja o seu também.

Eu npm install gulp-babel-es2015então não incluí-lo no gulpfile em tudo.

A babel({presets: ['es2015']})opção é apenas uma string, conforme mostrado nos exemplos aqui https://www.npmjs.com/package/gulp-babel .

Aqui está meu gulpfile.

var gulp = require('gulp'),
    babel = require('gulp-babel');

gulp.task('babelify', () => {
    gulp.src('js/*.js')
        .pipe(babel({
            presets: ['es2015']
        }))
    .pipe(gulp.dest('alljs'));
});

gulp.task('default', ['babelify']);

Além disso, a partir desta edição aqui, https://github.com/laravel/elixir/issues/354

As sugestões são: você deve atualizar o nó para a versão 5.xx e npm para 3.xx

ArchNoob
fonte
1

A situação em que encontro esse problema é que movi os arquivos de xxxpara xxx/server. E então, abaixo xxx/server, verei o Error: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"erro. O verdadeiro motivo é que esqueci de mover esse .babelrcarquivo para baixo xxx. E depois que movo .babelrcpara xxx/server, o erro desaparece.

infeliz
fonte
0

Eu só tive um muito estranho. Instalei todas as ferramentas do babel com um grande e longo npm installcomando, e tudo foi instalado sem erros ... exceto que estava jogando o erro documentado neste tópico, em tempo de execução.

Notei que a versão era 0.0.0 no arquivo package.json, então executei npm install --save-dev babel-preset-es2015novamente e funcionou e coloquei uma SEGUNDA chave no meu arquivo package.json:

   "devDependencies": {
     "babel-cli": "^6.24.1",
     "babel-core": "^6.24.1",
     "babel-polyfill": "^6.23.0",
     "babel-preset-es2015": "^6.24.1",
     "babel-preset-es2015": "0.0.0",
     "babel-preset-stage-2": "^6.24.1",
     "eslint": "^3.19.0"
   }

Acabei de remover a entrada malfeita e ele corrigiu este relative to directoryerro.

agm1984
fonte
0

Meu problema era que outro programa estava usando um arquivo envolvido no processo de compilação (provavelmente o .babelrc). Fechar vários aplicativos resolveu meu problema.

Para mim era Dropbox ou mesmo Editor de colchetes com extensão eqFTP.

saudações

manuman94
fonte
0

Atualização do Babel 7

Dos documentos, você deve usar agora em @babel/preset-envvez de qualquer outra presetmenção

A predefinição "env" já foi lançada há mais de um ano e substitui completamente algumas das predefinições que sugerimos / sugerimos anteriormente.

  • babel-preset-es2015
  • babel-preset-es2016
  • babel-preset-es2017
  • babel-preset-latest
  • Uma combinação das opções acima ^
yarn add @babel/preset-env

ou

npm install @babel/preset-env
ted
fonte