我是一个低代码平台,用户可以自己上传公共代码,在需要的地方去运行。大概是这样一个需求。
用户可以上传手写的如 a.js, 这个js我打算定义成umd标准(或者其他标准也行)。
然后用户在需要用他的a.js的时候 就可以 improtjs('http://a.js').then(a => {//自己的逻辑})。
我本身是webpack打包的,我就想到包装webpack打包后的__webpack_require__,去帮我们加载 来实现这个improtjs。还可以放到webpack的__webpack_module_cache__,不用每次都加载。但是我不知道如何拿到这个__webpack_require__。
实例:
// 用户的a.js
(function(window, factory) {
window.a= factory();
}(this, function() {
return {
name: '我是一个umd模块'
}
}))
// 用户在需要用到这个js的地方
importjs ('http://a.js').then(a => consle.log(a.name))
或者不用umd标准,用户直接return 它的返回值?
实例:
// 用户的js
const a= '我是a.js'
return a;
// 用户用的地方
importjs('http://a.js').then(a => console.log(a))
importjs 内部就用new Function 去做?
// 或者我给他处理成webpack 按需加载的那种
[["http://a.js"],{"http://a.js": function(){
}}]?
0 Commentaires