/** * 动态加载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, };