Обзор
Я написал плагин 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');
}
}
Не важно, в каком порядке я перечисляю плагины. Это ожидается, есть ли способ обойти это, или это ошибка?
Я не думаю, что реализация моего плагина имеет значение, но если это так, я могу добавить больше деталей.
Любая помощь приветствуется. Спасибо!