使用browserify进行babelify 6,es2015预设不起作用
我试图使用新的babel版本,并尝试使用es2015预设babel似乎不能理解箭头功能?
我在pre-babel6上的设置如下:
transform: [['babelify', {sourceMap: false, stage: 0, optional: 'runtime', ignore: ["*.min.js"]}]]
和babel6
transform: [['babelify', {"presets": ["es2015"]}]]
这不起作用。 为什么是这样?
编辑
添加"stage-0"
摆脱了语法错误信息,但却阻止了我能够用错误扩展任何东西: 'this' is not allowed before super()
当我有infact得到super()
调用时。
编辑
使用一些es7设置一个简单的测试应用程序,并尝试使用babel-core require hook,同样的问题。
编辑
好的,我已经缩小到阶段0在babeljs 6 ^中以不同的方式工作。
这是我注意到的:
运行文件
require("babel-core/register")(
{
presets: ["es2015", "stage-0"]
}
);
require("./app.js");
适用于:
class extendable {
constructor() {
console.log('extended')
}
}
class app extends extendable {
constructor() {
super();
this.method();
this.method2();
}
method() {
// arrow functions
setTimeout(() => {
console.log("works")
}, 1000)
}
/**
* arrow function method
*/
method2 = () => {
console.log('works')
}
}
new app();
不适用于:
class extendable {
constructor() {
console.log('extended')
}
}
class app extends extendable {
constructor() {
super();
this.method();
this.method2();
}
method() {
// arrow functions
setTimeout(() => {
console.log("works")
}, 1000)
}
/**
* arrow function method
*/
method2 = () => {
// give an error: 'this' is not allowed before super()
this.state = "hello";
}
}
new app();
所以我有点困惑。 这真的是不正确的语法? 我怎么能够使用这个pre-babel6?
这是一个Babeljs错误
看到
希望这将看到一个快速修复。
编辑 #2942没有引用相同的错误。 以下是此错误后的问题:#3028
这取决于你如何执行browserify,这是babelify的Github存储库(https://github.com/babel/babelify)所说的:
从CLI中:
$ browserify script.js -o bundle.js
-t [ babelify --presets [ es2015 react ] ]
使用节点:
browserify("./script.js")
.transform("babelify", {presets: ["es2015", "react"]})
.bundle()
.pipe(fs.createWriteStream("bundle.js"));
链接地址: http://www.djcxy.com/p/5635.html
上一篇: babelify 6 with browserify and the es2015 preset is not working