webpack 为什么巴别塔不改变我的职业属性?

kgsdhlau  于 2022-11-13  发布在  Webpack
关注(0)|答案(2)|浏览(131)

我有下面的person.js

export class Person {
    firstName = ""
    lastName = ""
    middleName = "Nothing"

    constructor(first, last){
        this.firstName = first;
        this.lastName = last;
    }

    get fullName() {
        return this.firstName + " " + this.middleName + " " + this.lastName;
    }
}

每当我试图运行Webpack时,我都会遇到一个语法错误,指向firstName和双引号之间的第一个等号。
如果我删除了构造函数之前的所有属性,那么一切都会正常工作(尽管我必须在构造函数中包含middleName的定义)。
我不知道这是网络包的问题还是巴别塔的问题。如果我把代码输入巴别塔的在线测试编译器,巴别塔似乎没有问题。
我试过使用babel-preset-es2015babel-preset-es2016babel-preset-env配置Babel,但没有任何变化。
知道为什么会出现错误吗?像这样的属性定义只在TypeScript中可用吗?

w3nuxt5m

w3nuxt5m1#

您需要使用transform-class-properties插件或包含此插件的stage-2预设。如果没有此插件,您将无法转换类属性:

npm install --save-dev babel-plugin-transform-class-properties

或者:

npm install --save-dev babel-preset-stage-2

然后确保将其包含在您的.babelrc或其他配置方式中:

{
  "plugins": [
    "transform-class-properties"
  ]
}

或者:

{
  "presets:" [
    "stage-2"
  ]
}
o7jaxewo

o7jaxewo2#

您可能在eslintrc.json文件中缺少"parser":"babel-eslint",这将确保使用Babel解析器

相关问题