| 12345678910111213141516171819202122232425262728 |
- /**
- * 动态加载js模块
- * @param {*} jsUrl js文件的路径
- * @return promise对象
- */
- let dynamicLoadJsModule = function(jsUrl){
- let promise = null;
-
- // 注意:在webpack中直接使用import(url).then()会错误的解析url。
- // 如果url是静态的值,举例'xxx.js', webpack打包的时候,会去src对应的目录下面找js文件。
- // 如果url是变量,举例const url = '', webpack打包的时候,原理不清晰...,测试结果时浏览器不会发出http请求加载后端的js文件。
- let command = `
- promise = new Promise((resolve, reject) => {
- import('${jsUrl}').then(remoteComponent => {
- resolve(remoteComponent);
- }).catch(error => {
- reject(error);
- });
- });
- `;
- eval(command);
- return promise;
- };
- export default {
- dynamicLoadJsModule,
- };
|