尝试使用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
这是终端输出
答案 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'));
});
,babel
和babel-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)
您现在应该在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)
您可以尝试通过
安装es2015
和stage-2
npm i babel-preset-es2015 --save
npm i babel-preset-stage-2 --save