[英]Node.js lazy require module
我正在写一个懒惰的模块require()或import
const lazy = new Proxy({},
{
get: function (target, name) {
console.log('lazy require', { target, name })
return require(name)
}
}
)
/**
* @param {string} Module Name
* @example const expo = requirez('expo')
*/
export default function requirez(name) {
return lazy[name]
}
奇怪的是,当我运行它时,我得到:
找不到模块“。”
console.log语句记录:
懒惰的要求
{target: {…}, name: "./Linking"}
因此require(name)
应该被调用为: require("./Linking")
错误所指示的不如require(".")
。
找到了相关的错误报告:
https://github.com/webpack/webpack/issues/4921
由于节点require
树解析度是静态评估/分析的,因此webpack假定这样做,因此无法进行动态解析。
另外,在浏览器上,Webpack必须在运行浏览器之前先翻译所需的包,这样动态惰性需求就无法在编译后运行。 您将缺少该必需模块的转译源。
我尝试使用import()
但它也有错误:
https://github.com/webpack/webpack/issues/4292#issuecomment-280165950
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.