Błąd: nie można znaleźć ustawienia wstępnego „es2015” względem katalogu „/ Users / username”


84

Podczas próby użycia gulp-babel pojawia się następujący błąd:

Błąd: nie można znaleźć ustawienia wstępnego „es2015” względem katalogu „/ Users / username”

Mam ustawienie wstępne es2015 zainstalowane globalnie i lokalnie, więc nie rozumiem, dlaczego byłby to problem.

Poniżej znajduje się moja konfiguracja łyka i 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"
  }

Używam węzła 5.1.0 i babel 6.4.0

Oto wyjście terminala

wyjście terminala


Myślę, że musisz przekazać ciąg w presetstablicy, na przykład ['es2015'], nie jestem pewien
thefourtheye

@thefourtheye Dzięki, ale ten sam problem co string.
Brian Douglas

Nie potrzebowałeś łyka. Może to może być przyczynavar gulp = require('gulp');
Andrei CACIO

@AndreiCacio Dołączyłem łyk, którego po prostu nie ma we fragmencie kodu. Dodałem tylko kod związany z kompilatorem babel.
Brian Douglas

3
Czy masz .babelrcplik w swoim katalogu domowym? Ponieważ właśnie tam szuka ustawienia wstępnego, oznacza to, że właśnie stąd pochodzi konfiguracja.
loganfsmyth

Odpowiedzi:


115

Wystarczy zainstalować babel-preset-es2015:

Przykład użycia CLI:

npm install babel-cli babel-preset-es2015

3
to rozwiązało to dla mnie ... WoW, co za okropny komunikat o błędzie: Błąd: Nie można znaleźć ustawienia wstępnego „es2015” w odniesieniu do katalogu „/ ścieżka / do / węzeł / pakiet / attemping / do / instalacja” ... szczególnie bolesne, gdy próba zainstalowania jakiegoś losowego pakietu npm, który używa gulp i babel
Scott Stensland

2
npm WARN przestarzałe babel-preset-es2015@6.24.1: 🙌 Dziękujemy za używanie Babel: zalecamy teraz używanie babel-preset-env: przeczytaj babeljs.io/env, aby zaktualizować!
Syed

Wielkie dzięki za to niesamowite rozwiązanie.
Pawan

12

„es2015” w:

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

jest w rzeczywistości ścieżką - więc jeśli nie masz ustawienia wstępnego w katalogu / Users / username / es2015, musisz wskazać go dokładnie, na przykład:

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

to działało dla mnie


działało również dla mnie, używając bezwzględnej ścieżki do folderu „babel-preset-es2015”
valkalon

Może się to wydawać zbyt uproszczone, więc dodaję to tylko jako komentarz, ale upewnij się, że wszystko jest poprawnie napisane. Miałem etykietę „es2105” z transponowanymi cyframi i przez chwilę drapałem się po głowie.
Robert Oschler,

12

Aby rozwiązać ten problem, należy usunąć plik .babelrc (ukryty) z katalogu „/ Users / username”.


Idealny. jest to rzeczywiście bardzo ukryta kwestia. Rozwiązałem to dla mnie
Amgad,

8

Właśnie użyłem dokładnie tego pliku 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'));
});

i to zadziałało dla mnie. I tylko zainstalowane babel, babel-preset-es2015i gulp-babel.


Czy możesz mi powiedzieć swoją wersję babel i node. Mam takie same ustawienia, jak widać. ale wciąż ten sam błąd
Brian Douglas

Używam węzła 4.0 i babel 6
Andrei CACIO

Zaktualizowany opis z wyjściem terminala
Brian Douglas

Może to być problem związany z systemem Windows lub coś podobnego. Znalazłem podobny wątek, który możesz sprawdzić: github.com/laravel/elixir/issues/354 może rzuci światło na problem.
Andrei CACIO

1
babel-preset-es2015Wyraźne ładowanie, jak pokazano tutaj, rozwiązało mój problem.
givemesnacks

7

Sprawdź, czy masz plik .babelrc w folderze głównym projektu. Jeśli nie, utwórz plik .babelrc i dodaj:

{
  "presets": ["es2015"]
}

To rozwiązało problem.


Uratowałem mój dzień! Dziękuję
Mehrnoosh

5

Możesz spróbować zainstalować es2015i stage-2za pośrednictwem

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

4

Napotkałem ten sam problem, ponieważ miałem .babelrcplik w katalogu głównym mojego katalogu.

Aby to naprawić, dodaj babelrc: falsewewnątrz opcji 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 Znalazłem .babelrcplik w moim katalogu głównym i to był problem. konfiguracja babelrc: falsewydaje się nie działać, ale kiedy usuwam wszystko działa!
generalduka

3

Miałem ten sam problem, a ta druga sugestia pomogła mi dostrzec mój problem i może to też twój.

I npm install gulp-babel-es2015wtedy nie obejmują go w gulpfile wcale.

Wtedy babel({presets: ['es2015']})opcja to po prostu ciąg, jak pokazano w przykładach tutaj https://www.npmjs.com/package/gulp-babel .

Oto mój plik łykowy.

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

Również od tego wydania tutaj https://github.com/laravel/elixir/issues/354

Sugestie są takie, że powinieneś zaktualizować węzeł do wersji 5.xx i npm do 3.xx


1

Sytuacja, w której napotykam ten problem, polega na tym, że przeniosłem pliki z xxxdo xxx/server. A potem pod xxx/serverzobaczę Error: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"błąd. Prawdziwym powodem jest to, że zapomniałem przenieść ten .babelrcplik pod xxx. A kiedy przeniosę to .babelrcdo xxx/server, błąd znika.


0

Po prostu miałem naprawdę dziwny. Zainstalowałem wszystkie narzędzia Babel jednym dużym, długim npm installpoleceniem i wszystko zostało zainstalowane bez błędów ... z wyjątkiem tego, że wyrzucał błąd udokumentowany w tym wątku w czasie wykonywania.

Zauważyłem, że wersja to 0.0.0 w pliku package.json, więc uruchomiłem npm install --save-dev babel-preset-es2015ponownie i zadziałało i umieściłem DRUGI klucz w moim pliku 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"
   }

Właśnie usunąłem nieudany wpis i wyjaśniłem ten relative to directorybłąd.


0

Mój problem polegał na tym, że inny program używał pliku zaangażowanego w proces kompilacji (prawdopodobnie .babelrc). Zamknięcie kilku aplikacji rozwiązało mój problem.

Dla mnie był to Dropbox lub nawet edytor Brackets z rozszerzeniem eqFTP.

Pozdrowienia


0

Aktualizacja Babel 7

Z dokumentów, których powinieneś teraz używać @babel/preset-envzamiast innych presetwzmianek

Ustawienie wstępne „env” jest niedostępne od ponad roku i całkowicie zastępuje niektóre z ustawień wstępnych, które mieliśmy / sugerowaliśmy wcześniej.

  • Babel preset-es2015
  • Babel preset-es2016
  • preset-babel-es2017
  • babel-preset-latest
  • Połączenie powyższych ^
yarn add @babel/preset-env

lub

npm install @babel/preset-env
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.