Erreur: impossible de trouver le préréglage "es2015" par rapport au répertoire "/ Users / username"


84

J'obtiens l'erreur suivante en essayant d'utiliser gulp-babel:

Erreur: impossible de trouver le préréglage "es2015" par rapport au répertoire "/ Users / username"

J'ai le préréglage es2015 installé globalement et localement, donc je ne peux pas voir pourquoi ce serait un problème.

Vous trouverez ci-dessous ma configuration et package.json gulp.

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"
  }

J'utilise node v5.1.0 et babel v6.4.0

Voici la sortie du terminal

sortie borne


Je pense que vous devez passer une chaîne dans le presetstableau, comme ['es2015'], je ne suis pas très sûr cependant
thefourtheye

@thefourtheye Merci mais même problème qu'une chaîne.
Brian Douglas

Vous n'avez pas besoin de gorgée. Peut-être que cela pourrait être la causevar gulp = require('gulp');
Andrei CACIO

@AndreiCacio J'ai inclus gulp il n'est tout simplement pas dans l'extrait de code. Je n'ai inclus que le code correspondant au compilateur babel.
Brian Douglas

3
Avez-vous un .babelrcfichier dans votre répertoire personnel? Puisque c'est là qu'il recherche le préréglage, cela signifie que c'est de là que vient la configuration.
loganfsmyth

Réponses:


115

Il vous suffit d'installer babel-preset-es2015:

Exemple d'utilisation de la CLI:

npm install babel-cli babel-preset-es2015

3
cela l'a résolu pour moi ... WoW quel terrible message d'erreur: Erreur: Impossible de trouver le préréglage "es2015" par rapport au répertoire "/ chemin / vers / nœud / package / tentative / vers / install" ... particulièrement douloureux quand essayant d'installer un paquet npm aléatoire qui utilise gulp et babel
Scott Stensland

2
npm WARN obsolète babel-preset-es2015@6.24.1: 🙌 Merci d'utiliser Babel: nous vous recommandons d'utiliser babel-preset-env maintenant: veuillez lire babeljs.io/env pour mettre à jour!
Syed

Merci beaucoup pour cette solution incroyable.
Pawan

12

le "es2015" dans:

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

est en fait un chemin - donc si vous n'avez pas le préréglage dans le répertoire / Users / username / es2015, vous devez le pointer exactement comme par exemple:

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

ça a marché pour moi


a également fonctionné pour moi en utilisant un chemin absolu vers le dossier "babel-preset-es2015"
valkalon

Cela peut sembler trop simpliste, donc je ne l'ajoute qu'en commentaire, mais assurez-vous de tout épeler correctement. J'avais l'étiquette «es2105» avec les chiffres transposés et cela m'a fait gratter la tête pendant un moment.
Robert Oschler

12

Pour résoudre ce problème Vous devez supprimer le fichier .babelrc (caché) du répertoire "/ Users / username".


Parfait. c'est en effet un problème très caché. Résolu pour moi
Amgad

8

Je viens d'utiliser ce gulpfile.js exact

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'));
});

et cela a fonctionné pour moi. J'ai seulement installé babel, babel-preset-es2015et gulp-babel.


Pouvez-vous me dire votre version de babel et node. J'ai la même configuration que vous pouvez le voir. mais toujours la même erreur
Brian Douglas

J'utilise le nœud 4.0 et babel 6
Andrei CACIO

Description mise à jour avec sortie du terminal
Brian Douglas

Cela peut être un problème lié à Windows ou à un autre du genre. J'ai trouvé un fil similaire que vous pouvez consulter: github.com/laravel/elixir/issues/354 peut-être qu'il mettra en lumière le problème.
Andrei CACIO

1
Le chargement babel-preset-es2015explicite comme indiqué ici a résolu mon problème.
givemesnacks

7

Vérifiez si vous avez un fichier .babelrc dans le dossier racine de votre projet. Sinon, créez un fichier .babelrc et ajoutez ce qui suit:

{
  "presets": ["es2015"]
}

Cela a résolu le problème.


J'ai sauvé ma journée! Merci
Mehrnoosh

5

Vous pouvez essayer d'installer es2015et stage-2via

npm i babel-preset-es2015 --save
npm i babel-preset-stage-2 --save

4

J'ai rencontré le même problème et c'était parce que j'avais un .babelrcfichier à la racine de mon répertoire.

Pour résoudre ce problème, ajoutez babelrc: false dans les options de 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'));
});

+1 J'ai trouvé un .babelrcfichier dans ma racine et c'était le problème. la config babelrc: falsene semble pas fonctionner, mais quand je supprime tout fonctionne!
globalduka

3

J'ai eu le même problème, et cette deuxième suggestion m'a aidé à remarquer mon problème et peut-être que c'est le vôtre aussi.

je npm install gulp-babel-es2015 ne l' alors pas inclus du tout dans le gulpfile.

Ensuite, l' babel({presets: ['es2015']})option est juste une chaîne comme indiqué dans les exemples ici https://www.npmjs.com/package/gulp-babel .

Voici mon 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']);

Aussi, à partir de ce numéro ici, https://github.com/laravel/elixir/issues/354

Des suggestions sont que vous devez mettre à jour le nœud vers la version 5.xx et npm vers la version 3.xx


1

La situation dans laquelle je rencontre ce problème est que j'ai déplacé les fichiers de xxxvers xxx/server. Et puis sous xxx/serverje vais voir l' Error: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"erreur. La vraie raison est que j'ai oublié de déplacer ce .babelrcfichier sous xxx. Et après avoir déplacé cela .babelrcvers xxx/server, l'erreur disparaît.


0

J'en ai juste eu un vraiment bizarre. J'ai installé tous les outils babel avec un gros longnpm install commande, et tout a été installé sans erreur ... sauf que cela lançait l'erreur documentée dans ce fil, au moment de l'exécution.

J'ai remarqué que la version était 0.0.0 dans le fichier package.json, j'ai donc exécuté à npm install --save-dev babel-preset-es2015nouveau et cela a fonctionné et j'ai placé une SECONDE clé dans mon fichier 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"
   }

Je viens de supprimer l'entrée bâclée et cela a résolu cette relative to directoryerreur.


0

Mon problème était qu'un autre programme utilisait un fichier impliqué dans le processus de compilation (probablement le .babelrc). La fermeture de plusieurs applications a résolu mon problème.

Pour moi, c'était Dropbox ou même Brackets Editor avec l'extension eqFTP.

Salutations


0

Mise à jour Babel 7

À partir de la documentation, vous devez maintenant utiliser @babel/preset-envau lieu de toute autre presetmention

Le préréglage «env» est sorti depuis plus d'un an maintenant, et remplace complètement certains des préréglages que nous avions / suggérés plus tôt.

  • babel-preset-es2015
  • babel-preset-es2016
  • babel-preset-es2017
  • babel-preset-dernier
  • Une combinaison de ce qui précède ^
yarn add @babel/preset-env

ou

npm install @babel/preset-env
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.