Помилка: Не вдалося знайти попередньо встановлений “es2015” щодо каталогу “/ Користувачі / ім’я користувача”


84

Я отримую таку помилку при спробі використовувати gulp-babel:

Помилка: Не вдалося знайти попередньо встановлений "es2015" щодо каталогу "/ Користувачі / ім'я користувача"

У мене встановлено пресет es2015 глобально та локально, тому я не можу зрозуміти, чому це може бути проблемою.

Нижче наведено мою ковток і 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"
  }

Я використовую node v5.1.0 і babel v6.4.0

Ось термінал вийшов

термінальний вихід


Думаю, вам потрібно передати рядок у presetsмасиві, наприклад ['es2015'], я не дуже впевнений
четверте око

@thefourtheye Дякую, але те саме питання, що і рядок.
Брайан Дуглас,

Вам не потрібно було ковтати. Можливо, це може бути причиноюvar gulp = require('gulp');
Андрій КАСІО

@AndreiCacio Я включив ковток, якого просто немає у фрагменті коду. Я включив лише код, що стосується компілятора babel.
Brian Douglas

3
У вас випадково є .babelrcфайл у вашому домашньому каталозі? Оскільки саме там він шукає пресет, це означає, що саме звідси походить конфігурація.
loganfsmyth

Відповіді:


115

Вам потрібно лише встановити babel-preset-es2015:

Приклад використання CLI:

npm install babel-cli babel-preset-es2015

3
це вирішило це для мене ... WoW, яке жахливе повідомлення про помилку: Помилка: Не вдалося знайти попередньо встановлений "es2015" щодо каталогу "/ шлях / до / вузол / пакет / спроба / встановити" ... особливо болісно, ​​коли намагається встановити якийсь довільний пакет npm, який використовує ковток і бабель
Скотт Стенсленд,

2
npm WARN застарілий babel-preset-es2015@6.24.1: 🙌 Дякуємо за використання Babel: ми рекомендуємо використовувати babel-preset-env зараз: прочитайте babeljs.io/env, щоб оновити!
Сієд,

Велике спасибі за це дивовижне рішення.
Pawan,

12

"es2015" у:

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

насправді є шляхом - тому, якщо у вас немає пресету в каталозі / Users / username / es2015, вам доведеться вказувати точно на нього, як наприклад:

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

це спрацювало для мене


також працював для мене, використовуючи абсолютний шлях до папки "babel-preset-es2015"
valkalon

Це може здатися надто спрощеним, тому я додаю його лише як коментар, але переконайтеся, що ви написали все правильно. У мене була мітка "es2105" із перенесеними цифрами, і я деякий час чухав голову.
Роберт Ошлер,

12

Щоб вирішити цю проблему, вам слід видалити (прихований) файл .babelrc з каталогу "/ Users / username".


Ідеально це справді дуже прихована проблема. Вирішив це для мене
Амгад

8

Я щойно використав саме цей 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'));
});

і це спрацювало для мене. Я лише встановив babel, babel-preset-es2015і gulp-babel.


Не могли б ви сказати мені свою версію babel і node. У мене таке ж налаштоване, як ви бачите. але все-таки та сама помилка
Брайан Дуглас

Я використовую вузол 4.0 і babel 6
Андрій КАСІО

Оновлений опис із виведенням терміналу
Брайан Дуглас

Це може бути проблема, пов’язана з Windows, або щось подібне. Я знайшов подібну тему, яку ви можете перевірити: github.com/laravel/elixir/issues/354, можливо, це засвітить проблему.
Андрій КАЧІО

1
babel-preset-es2015Явне завантаження, як показано тут, вирішило мою проблему.
givemesnacks

7

Перевірте, чи є файл .babelrc у кореневій папці вашого проекту. Якщо не створити файл .babelrc і додати наступне:

{
  "presets": ["es2015"]
}

Це вирішило проблему.


Врятував мій день! Дякую
Mehrnoosh

5

Ви можете спробувати встановити es2015та stage-2через

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

4

Я зіткнувся з тією ж проблемою, і це тому, що у мене був .babelrcфайл у кореневій частині мого каталогу.

Щоб виправити це додавання babelrc: falseвсередині параметрів 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 я знайшов .babelrcфайл у своєму кореневій системі, і в цьому була проблема. babelrc: falseЗдається, конфігурація не працює, але коли я видаляю, все працює!
generalduka

3

У мене була та сама проблема, і ця друга пропозиція допомогла мені помітити свою проблему, і, можливо, вона теж ваша.

npm install gulp-babel-es2015Тоді я взагалі не включав його до gulpfile.

Тоді babel({presets: ['es2015']})параметр - це просто рядок, як показано в прикладах тут https://www.npmjs.com/package/gulp-babel .

Ось мій 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']);

Також, починаючи з цього випуску тут, https://github.com/laravel/elixir/issues/354

Пропонуємо вам оновити вузол до версії 5.xx та npm до 3.xx


1

Ситуація, коли я стикаюся з цією проблемою, полягає в тому, що я перемістив файли з xxxна xxx/server. І тоді під xxx/serverЯ побачу Error: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"помилку. Справжня причина полягає в тому, що я забув перенести цей .babelrcфайл під xxx. І після того, як я рухаюся , що .babelrcдо xxx/server, помилка йде.


0

У мене просто був справді дивний. Я встановив усі інструменти babel за допомогою однієї великої довгої npm installкоманди, і все встановилося без помилок ... за винятком того, що він викидав помилку, задокументовану в цьому потоці, під час виконання.

Я помітив, що у файлі package.json версія була 0.0.0, тому я запустив npm install --save-dev babel-preset-es2015знову, і це заробило, і помістив ДРУГИЙ ключ у мій файл 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"
   }

Я щойно видалив зіпсований запис, і він усунув цю relative to directoryпомилку.


0

Моя проблема полягала в тому, що інша програма використовувала файл, який брав участь у процесі компіляції (ймовірно, .babelrc). Закриття декількох програм вирішило мою проблему.

Для мене був Dropbox або навіть Редактор дужок з розширенням eqFTP.

Привітання


0

Оновлення Babel 7

З документації ви тепер повинні використовувати @babel/preset-envзамість будь-якої іншої presetзгадки

Пресет "env" виходить уже більше року і повністю замінює деякі пресети, які ми вже мали / пропонували раніше.

  • babel-preset-es2015
  • babel-preset-es2016
  • babel-preset-es2017
  • babel-preset-latest
  • Поєднання вищезазначеного ^
yarn add @babel/preset-env

або

npm install @babel/preset-env
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.