错误:找不到相对于目录“/用户/用户名”的预设“es2015”

Error: Couldn't find preset "es2015" relative to directory "/Users/username"

本文关键字:用户 es2015 相对于 错误 找不到      更新时间:2023-09-26

我在尝试使用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"
  }

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

这是终端输出

端子输出

你只需要安装babel-preset-es2015

命令行使用示例:

npm install babel-cli babel-preset-es2015

要解决此问题,您应该从"/Users/username"目录中删除.babelrc(隐藏)文件。

> 中的"es2015"

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

实际上是一个路径 - 所以如果你在/Users/username/es2015 目录中没有预设,你必须准确地指向它,例如:

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

它对我有用

我只是使用了这个确切的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

您可以尝试通过以下方式安装 es2015stage-2

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

检查项目的根文件夹中是否有 .babelrc 文件。如果没有,请创建 .babelrc 文件并添加以下内容:

{
  "presets": ["es2015"]
}

它解决了这个问题。

我遇到了同样的问题,这是因为我的目录根目录中有一个.babelrc文件。

要解决此问题,请在 babel 选项中添加babelrc: false

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

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

npm install gulp-babel-es2015根本没有将其包含在gulpfile中。

然后babel({presets: ['es2015']})选项只是一个字符串,如此处的示例所示 https://www.npmjs.com/package/gulp-babel .

这是我的古尔普文件。

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.x.x,将 npm 更新到 3.x.x。

遇到此问题的情况是我已将文件从xxx移动到xxx/server。然后在xxx/server下,我将看到Error: Couldn't find preset "es2015" relative to directory "/Users/username/xxx"错误。真正的原因是我忘记将该.babelrc文件移动到xxx下。在我将该.babelrc移动到xxx/server后,错误消失了。

我刚刚有一个非常奇怪的。我用一个大的长npm install命令安装了所有的 babel 工具,并且所有工具都安装起来没有错误......除了它在运行时抛出此线程中记录的错误。

我注意到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错误。

我的问题是其他程序正在使用编译过程中涉及的文件(可能是 .babelrc)。关闭几个应用程序解决了我的问题。

对我来说是Dropbox,甚至是带有eqFTP扩展的括号编辑器。

问候

Babel 7 更新

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

"env"预设已经推出一年多了,完全取代了我们之前拥有/建议的一些预设。

  • 通天塔预设-ES2015
  • 通天塔-预设-ES2016
  • 通天塔预设-ES2017
  • 巴别塔预设最新
  • 以上^的组合
yarn add @babel/preset-env

npm install @babel/preset-env