Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用webpack将SystemJS从0.21更新到6.x_Javascript_Webpack_Systemjs - Fatal编程技术网

Javascript 使用webpack将SystemJS从0.21更新到6.x

Javascript 使用webpack将SystemJS从0.21更新到6.x,javascript,webpack,systemjs,Javascript,Webpack,Systemjs,有一个带有React应用程序的UMD捆绑包,托管在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 Syst

有一个带有React应用程序的UMD捆绑包,托管在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;
  }
}
从“React”导入React;
从“react dom”导入react dom;
从“SystemJS/dist/system production”导入SystemJS;//0.21
SystemJS.registry.set('React',SystemJS.newModule(React));
SystemJS.registry.set('ReactDOM',SystemJS.newModule(ReactDOM));
常量URL=https://example.com/bundle.js'; // UMD束
类应用程序扩展了React.Component{
componentDidMount(){
然后(module=>this.setState({module}));
}
render(){
const Component=this.state.module?.default;
返回组件?:空;
}
}

有没有办法让它和你一起工作SystemJS@6.0,或以其他方式加载?它现在可以工作了,但使用旧版本让我感到不安。将下载包的格式从UMD更改为SystemJS几乎是不可能的,因为有很多消费者我无法控制。

我设法让SystemJS 6.6.1在Angular项目中工作,以便加载UMD包。 您可以在此处找到详细信息:

我认为,最重要的部分是,您需要加载一个额外的脚本来处理UMD模块=>
“node\u modules/systemjs/dist/extras/amd.js”