[英]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.