gpt4 book ai didi

browserify - babelify 6 与 browserify 和 es2015 预设不起作用

转载 作者:行者123 更新时间:2023-12-02 23:04:35 24 4
gpt4 key购买 nike

我正在尝试使用新的 babel 版本,并且在尝试使用 es2015 预设的 babel 时似乎无法理解箭头函数?

我在 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( ) 当我实际上得到了 super() 调用时。

编辑

使用一些 es7 设置一个简单的测试应用程序,并尝试使用 babel-core require 钩子(Hook),同样的问题。

编辑

好吧,我已经将范围缩小到了 stage-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 6 与 browserify 和 es2015 预设不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com