Ошибка: не удалось найти предустановку «es2015» относительно каталога «/ Users / username»


84

При попытке использовать gulp-babel я получаю следующую ошибку:

Ошибка: не удалось найти предустановку "es2015" относительно каталога "/ Пользователи / имя пользователя"

У меня предустановка es2015 установлена ​​глобально и локально, поэтому я не понимаю, почему это может быть проблемой.

Ниже приведены мои настройки gulp и 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

@thefourtheye Спасибо, но та же проблема, что и строка.
Брайан Дуглас

Вам не нужен глоток. Может быть, это могло быть причинойvar gulp = require('gulp');
Андрей CACIO

@AndreiCacio Я включил gulp, его просто нет во фрагменте кода. Я включил только код, относящийся к компилятору babel.
Брайан Дуглас

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

Ответы:


115

Вам нужно всего лишь установить babel-preset-es2015:

Пример использования CLI:

npm install babel-cli babel-preset-es2015

3
это решило проблему для меня ... WoW, какое ужасное сообщение об ошибке: Ошибка: не удалось найти предустановку "es2015" относительно каталога "/ путь / к / узлу / пакету / попытка / установить / ... особенно болезненно, когда пытаюсь установить какой-то случайный пакет npm, который использует gulp и babel
Скотт

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

Большое спасибо за это замечательное решение.
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. У меня такая же настройка, как вы видите. но все же та же ошибка
Брайан Дуглас

Я использую node 4.0 и babel 6
Андрей CACIO

Обновлено описание с выводом на терминал
Брайан Дуглас

Это может быть проблема, связанная с Windows или что-то в этом роде. Я нашел похожую ветку, которую вы можете проверить: github.com/laravel/elixir/issues/354, возможно, она пролит свет на проблему.
Андрей CACIO

1
Загрузка babel-preset-es2015явно, как показано здесь, решила мою проблему.
givemesnacks

7

Проверьте, есть ли у вас файл .babelrc в корневой папке вашего проекта. Если нет, создайте файл .babelrc и добавьте следующее:

{
  "presets": ["es2015"]
}

Это устранило проблему.


Спас мой день! Спасибо
Mehrnoosh

6

Вы можете попробовать установить 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кажется не работает, но когда я удаляю все работает!
overallduka 07

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

Предлагается обновить node до версии 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командой, и все было установлено без ошибок ... за исключением того, что во время выполнения возникала ошибка, задокументированная в этом потоке.

Я заметил, что версия была 0.0.0 в файле package.json, поэтому я запустил 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.