错误:找不到相对于目录“/用户/用户名”的预设“es2015”
Error: Couldn't find preset "es2015" relative to directory "/Users/username"
我在尝试使用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'));
});
它对我有用。我只安装了babel
,babel-preset-es2015
和gulp-babel
。
您可以尝试通过以下方式安装 es2015
和stage-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
- 从远程脚本获取用户IP
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- d3基于用户选择动态更新节点
- 同步调用,直到用户通过angular验证为访问者
- 使用javascript搜索具有用户输入的数组
- 如何使用jquery确定用户是否年满18岁
- Meteor-添加用户自定义字段的方法不起作用
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 跟踪用户点击Adsense广告的IP地址
- 使用javascript反复检查用户在facebook上的登录状态
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 如何检查用户在html5视频播放器中观看了完整的视频
- 一个密码测试程序,如果存在空格,它会提醒用户
- 如何使用JavaScript中的用户输入创建序列/序列
- 当用户按下回车键时,自动在text区域/text中插入消息
- 显示某个用户ID的某个标签的30张Instagram图片
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- javascript跨浏览器确定用户是否滚动到页面底部
- JSON获取用户id's在嵌套数组中
- 错误:找不到相对于目录“/用户/用户名”的预设“es2015”