Обновление системы JS с 0,21 до 6.x с помощью веб-пакета - PullRequest
0 голосов
/ 18 февраля 2020

Существует 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 практически невозможно, потому что многие потребители не контролируются.

...