Внутри моего приложения есть класс, который я хочу разрешить пользователям приложения расширяться.
Вот как выглядит определение связанного класса:
import * as d3 from 'd3';
class VizPlugin {
constructor(options) {
this.options = options;
}
build() {
}
...
}
export default VizPlugin;
Приложение представляет собой полное клиент-серверное приложение nodejs, установленное на клиентском сервере. После того, как приложение будет упаковано / развернуто / установлено на сервере, я хочу, чтобы клиент мог расширять приложение и добавлять свои собственные пользовательские модули в виде расширений / плагинов, например:
import VizPlugin from './js/viz-plugin'; //there is no viz-plugin.js because it's bundled
class ScatterPlot extends VizPlugin {
constructor(options) {
super(options);
}
build() {
//I'd like to also use the reference to d3 from VizPlugin here
}
...
}
export default ScatterPlot;
. их javascript код в каталоге рядом с другим клиентом javascript и импорт из него. По сути, должен быть именованный файл с именем «viz-plugin. js», который можно импортировать из «scatter-plot. js».