概述
我编写了一个 babel 插件,它为类添加了一个自定义构造函数。我还使用@babel/plugin-proposal-class-properties
插件来支持类属性。我的.babelrc
样子是这样的:
{
"plugins": [
"./plugins/my-plugin.js",
"@babel/plugin-proposal-class-properties",
]
}
我正在使用babel-core@7.2.2
, 和@babel/plugin-proposal-class-properties@7.2.3
.
问题
类属性插件覆盖了我生成的构造函数。例如,给定这个测试文件:
// Source
class Test extends Base {
// someProp = 'yay';
}
如果我在没有类属性插件的情况下运行,则会插入我的构造函数:
// Transpiled (no class props)
class Test extends Base {
constructor() {
super(...arguments);
console.log('my special custom code');
}
}
但是如果我取消注释someProp
并启用类属性插件,我的自定义代码将被覆盖:
// Transpiled (with class props)
class Test extends Base {
constructor(...args) {
super(...args);
_defineProperty(this, "someProp", 'yay');
}
}
我列出插件的顺序似乎并不重要。这是预期的,有没有办法解决它,或者这是一个错误?
我不认为我的插件的实现很重要 - 但如果确实如此,我可以添加更多细节。
任何帮助表示赞赏。谢谢!