Существует UMD-пакет с приложением React, которое размещено в CDN и загружается динамически при необходимости. React и ReactDOM не связаны, и ожидается, что среда будет иметь их в наличии. Все приложение построено с использованием Webpack. У меня есть следующий код с SystemJS@0.21, который работает:
import React from 'react';
import ReactDOM from 'react-dom';
import SystemJS from 'systemjs/dist/system-production'; // 0.21
SystemJS.registry.set('React', SystemJS.newModule(React));
SystemJS.registry.set('ReactDOM', SystemJS.newModule(ReactDOM));
const URL = 'https://example.com/bundle.js'; // UMD bundle
class App extends React.Component {
componentDidMount() {
SystemJS.import(URL).then(module => this.setState({ module }));
}
render() {
const Component = this.state.module?.default;
return Component ? <Component /> : null;
}
}
Есть ли способ заставить его работать с SystemJS@6.0 или загрузить другим способом? Это работает сейчас, но использование старой версии беспокоит меня. Изменение формата загруженного пакета с UMD на System JS практически невозможно, потому что многие потребители не контролируются.