错误:找不到相对于目录“ / Users / username”的预设“ es2015”


84

尝试使用gulp-babel时出现以下错误:

错误:找不到相对于目录“ / Users / username”的预设“ 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"
  }

我正在使用节点v5.1.0和babel v6.4.0

这是终端输出

终端输出


我认为您需要在presets数组中传递字符串,例如['es2015'],但我不太确定
thefourtheye

@thefourtheye谢谢,但与字符串相同。
Brian Douglas

你不需要喝水。也许这可能是原因var gulp = require('gulp');
Andrei CACIO '16年

@AndreiCacio我已经在代码段中加入了gulp。我只包含了与babel编译器相关的代码。
Brian Douglas

3
.babelrc您的主目录中是否碰巧有一个文件?因为那是寻找预设的地方,所以这就是配置的来源。
loganfsmyth,2016年

Answers:


115

您只需要安装babel-preset-es2015

CLI用法示例:

npm install babel-cli babel-preset-es2015

3
这为我解决了...多么糟糕的错误消息:错误:找不到相对于目录“ / path / to / node / package / attemping / to / install”的预设“ es2015” ...尤其痛苦试图安装一些使用
gulp

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”,上面有转位的数字,这让我挠了一下头。
罗伯特·奥施勒


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

它为我工作。我只安装babelbabel-preset-es2015gulp-babel


您能告诉我您的babel和node版本吗?我的设置与您看到的相同。但仍然是同样的错误
Brian Douglas

我正在使用节点4.0和babel 6
Andrei CACIO

终端输出的更新描述
Brian Douglas

可能是Windows相关问题或类似问题。我发现了一个类似的线程可以查看:github.com/laravel/elixir/issues/354也许它将为您解决这个问题。
Andrei CACIO '16年

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似乎无法正常工作,但是当我删除所有内容时,一切正常!
totalduka

3

我遇到了同样的问题,第二个建议帮助我注意到了我的问题,也许也是您的问题。

一世 npm install gulp-babel-es2015然后,根本没有将其包括在gulpfile中。

然后babel({presets: ['es2015']})option只是一个字符串,如此处示例中所示: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再次运行,它起作用并将SECOND密钥放入我的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扩展名的Brackets Editor。

问候


0

Babel 7更新

文档中,您现在应该使用@babel/preset-env而不是其他任何preset提及

“ env”预设已经使用了一年多,并且完全替代了我们之前/建议的某些预设。

  • babel-preset-es2015
  • babel-preset-es2016
  • babel-preset-es2017
  • babel预设最新
  • 以上^的组合
yarn add @babel/preset-env

要么

npm install @babel/preset-env
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.