错误:无法找到预设" es2015"相对于目录" / Users / username"

时间:2016-01-15 20:38:05

标签: javascript node.js ecmascript-6 gulp babeljs

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

  

错误:无法找到预设" es2015"相对于目录   " /用户/用户名"

我已经在全球和本地安装了es2015预设,因此无法理解为什么会出现问题。

以下是我的gulp设置和package.json。

//prints it together
$scope.fullname = "Welcome to " + $scope.name + " " + $scope.lastname;

的package.json

$string = "John Doe L R T";

$matches = null;
preg_match('/\b\s[a-zA-z]{1}\b/i', $string, $matches);

foreach ($matches as $match)
{
    $string = str_replace($match, $match.'.',$string);
}

echo $string;

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

这是终端输出

terminal output

12 个答案:

答案 0 :(得分:105)

您只需要安装babel-preset-es2015

CLI使用示例:

npm install babel-cli babel-preset-es2015

答案 1 :(得分:12)

“es2015”in:

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

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

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

它对我有用

答案 2 :(得分:9)

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

答案 3 :(得分:7)

我刚刚使用了这个确切的gulpfile.js

print(remainder)

它对我有用。我只安装了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-es2015

答案 4 :(得分:7)

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

{
  "presets": ["es2015"]
}

它解决了这个问题。

答案 5 :(得分:4)

我遇到了同样的问题,因为我的目录根目录中有一个.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'));
});

答案 6 :(得分: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.x.x版,将npm更新为3.x.x。

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

对我来说,Dropbox甚至是带有eqFTP扩展名的Brackets Editor。

问候

答案 10 :(得分:0)

Babel 7更新

您现在应该在docs中使用@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

答案 11 :(得分:0)

您可以尝试通过

安装es2015stage-2
npm i babel-preset-es2015 --save
npm i babel-preset-stage-2 --save