Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js延迟请求模块_Node.js_Module_Lazy Loading_Require - Fatal编程技术网

Node.js延迟请求模块

Node.js延迟请求模块,node.js,module,lazy-loading,require,Node.js,Module,Lazy Loading,Require,我正在编写一个惰性模块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 = r

我正在编写一个惰性模块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:{…},名称:“./Linking”}

所以
require(name)
应该被称为:
require(“./链接”)


而不是错误指示的
要求(“.”

找到相关的错误报告:

由于节点<代码>要求树解析是静态评估/分析的,而webpack认为这在动态解析上是失败的

此外,在浏览器上,Web包必须在浏览器中运行之前传输所需的捆绑包,因此传输后无法运行dynamic lazy requires。您将丢失所需模块的传输源

我尝试过使用
import()
,但它也有错误: