如何加载JavaScript按需捆绑包而无需在SystemJS中两次下载相同的库?

时间:2017-02-01 09:21:28

标签: reactjs module ecmascript-6 systemjs systemjs-builder

我们说,我有一个React项目,主要入口点是app.js。我在这里添加了ReactReact-DOMjQuery

import React, {Component} from 'react';
import ReactDOM from 'react-dom';
...

现在假设我在这里定义了一些路由,这将导致它按需触发route1.jsroute2.js等,如下所示:

SystemJS.import('route1.js');

现在,我使用jspm将我的代码捆绑在一起(除了reactreact-dom之外,我的app.js还会导入许多自定义书写捆绑包。因此,当我将app.js捆绑在一起捆绑所有库和自定义模块时,请说build.js

jspm bundle app.js build.js

现在,build.js内的代码会根据需要触发加载route1.jsroute2.js等。但是,route1.jsroute2.js也会使用reactreact-dom的ES6导入。现在我可以使用webpackjspm来捆绑这些route1.jsroute2.js等等。看,我已经包含了react和{ {1}}中的{1}}个库,仅提取新的react-dombuild.js。我不想在route1.jsroute2.js中包含相同的库,因为我已经在route1.js内部下载了一次。但是只提取route2.jsapp.js(使用ES6导入语句)不会起作用,因为浏览器不理解这一点。

如何制作

  • 在开发中使用ES6代码同时按需加载代码
  • 不要多次下载相同的库

0 个答案:

没有答案