我是 babel 新手,我设置了一个新项目,安装了 babel,通过 bower 安装了 react-dnd,我的 .babelrc 有以下几行
{
"presets": ["es2015", "stage-0", "react"]
}
模块构建失败:ReferenceError:
[BABEL] <path>\bower_components\react-dnd\src\index.js: Using removed Babel 5 option: <path>\bower_components\react-dnd\.babelrc.stage - Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets
我究竟做错了什么
嗨,我遇到了类似的问题,使用 webpack 和 babel 6。
ERROR in ./~/dnd-core/lib/index.js
Module build failed: ReferenceError: [BABEL] /node_modules/dnd-core/lib/index.js:
Using removed Babel 5 option: /node_modules/dnd-core/.babelrc.stage - Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets
这是我的设置:
包.json
{
"devDependencies": {
"babel-core": "^6.3.26",
"babel-loader": "^6.2.1",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.5.0",
"css-loader": "^0.23.1",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.5",
"jquery": "^2.2.1",
"less": "^2.6.1",
"less-loader": "^2.2.2",
"style-loader": "^0.13.0",
"url-loader": "^0.5.7",
"webpack": "^1.12.9",
"webpack-dev-server": "^1.14.0"
},
"dependencies": {
"babel-polyfill": "^6.3.14",
"expose-loader": "^0.7.1",
"jquery": "^2.1.4",
"lodash": "^3.10.1",
"react": "^0.14.7",
"react-dnd": "^2.1.3",
"react-dnd-html5-backend": "^2.1.2",
"react-dom": "^0.14.7",
"tracking": "^1.1.2"
}
}
.babelrc
{
"presets": ["react", "es2015", "stage-0"]
}
网络包
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader'
}
]
}
};
任何人都可以帮助我吗?
啊哈,我通过在 webpack.conf 中排除node_modules
来修复它:dancers:
{
exclude: /(node_modules|bower_components)/,
test: /\.js$/,
loader: 'babe-loader'
},
它解决了我的问题,非常感谢!
@walter0331
装载机:'宝贝装载机'
这应该是一回事。
@billyjanitsch你考虑过更新 babel 吗? 你愿意接受它的公关吗?
我在使用 Webpack 和 Babel 6 时遇到了这个问题。与 @walter0331 类似。 我需要让这个通过我的 Babel 运行,因为我们正在对node_modules
进行自定义缩小,所以排除node_modules
对我没有帮助。
澄清一下,我认为每个人的意思都是“babel-loader”而不是“babe-loader”。
loader: 'babel-loader'
我正在尝试从 babel5.x 升级到 6.x 并遇到同样的错误。 我正在使用 react、redux 和 babel 6 和 webpack。
下面是我的 webpack 配置(部分)
模块: {
装载机: [
{ 测试:/.svg$/,排除:/.less$/,加载器:'svg-inline'},
{ 测试:/.coffee$/,装载机:'咖啡装载机'},
{ 测试:/.jsx?$/,排除:/node_modules/,
装载机:
['react-hot-loader/webpack', 'babel-loader?' + JSON.stringify({
预设:['es2015','stage-0','react'],
插件:['transform-decorators-legacy',
['transform-async-to-module-method',
{'模块':'蓝鸟','方法':'协程'}
]]
})
]
},
{ test: /.less/, loader: 'style-loader!css-loader!less-loader' },
{ test: /.css/, loader: 'style-loader!css-loader' },
{ 测试: /.json$/, 加载器: 'json-loader' },
{ test: /.gif$/, loader: "url-loader?mimetype=image/png" },
{ test: /.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, loader: "url-loader?limit=10000&minetype=application/字体-woff" },
{ test: /.(ttf|eot|svg)(\?v=[0-9].[0-9].[0-9])?$/, loader: "file-loader" },
{ test: /jquery.js$/, loader: 'expose?jQuery' },
]
},
.babelrc
{
"预设": ["es2015", "react", "stage-0"],
"插件": ["transform-decorators-legacy", ["transform-async-to-module-method", {
“模块”:“蓝鸟”,
“方法”:“协程”
}]]]
}
我注意到一件事,此错误消息主要出现在我从“bluebird”导入 Promise 的文件中。
任何人都可以帮忙吗?
撞。 有没有办法在构建时忽略依赖项的 babel 配置......?
@walter0331非常感谢您,在我阅读您的解决方案之前,这个问题并没有让我如此困惑。 但是我不明白为什么这样设置可以解决的原理:exclude: /(node_modules|bower_components)。
@ry928330基本上, disposables
库用于react-dnd
,而disposables
使用的是过时的 babel 版本 Babel 5(这个库没有维护)。 如果包含在 webpack 配置中,则会产生冲突,因为我们现在使用的是 Babel 版本 6。 所以这里更好的解决方案(至少对我有用)不一定排除所有node_modules,而只排除冲突的一个。
在你的 babel-loader webpack 配置中添加exclude: /(disposables)/
,例如:
{
test: /\.js$/,
exclude: /(disposables)/,
loader: 'babel-loader',
}
这才是正确的解决方案。 引擎盖下使用什么版本的 Babel disposables
无关紧要。 真正的问题是你试图用 Babel 编译node_modules
。 这并不总是安全的,除非您知道自己在做什么并且只选择加入特定的包(或使用另一个信号,例如engines
字段并忽略配置),否则您不应该这样做。
也就是说我在[email protected]
发布了一个“修复”。 尽管如此,如果您在node_modules
编译所有内容,那么您就会遇到问题。
mix.webpackConfig({
module: {
rules: [{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: Config.babel()
}
}]
}
})
它的作品,谢谢!
我通过添加 [] 修复presets: [ ["es2015", { loose: false }] ]
这发生在我无意中将stage: 1
到我的server/.babelrc
文件之后。
{
"presets": ["es2015", "stage-0"],
"plugins": ["transform-runtime"],
stage: 1
}
通过删除此修复
{
"presets": ["es2015", "stage-0"],
"plugins": ["transform-runtime"],
}
最有用的评论
@walter0331
这应该是一回事。