Require function added #23948
憋脚的英文, 很难说明白…
.优先在"moduleLocation" 中定义的包的路径查找依赖,
若是找不到相关的依赖包 ,则到全局下面查找相关的包,
然后再到 node_module 下去查找,(原先的node包查找机制)
如在跟目录下执行require(“ws”) ,
///package.json
{
"name": "xxxxx",
"version": "1.0.5",
"description": "必须读取package.json才知道包的入口main 位置, moduleLocation 方便自由放置依赖文件的位置,依赖文件可以复用,而不需要拷贝文件",
"main": "index.js",
"moduleLocation": {
"ws": "/dev/module/ws1.0",
"express": "/dev/module/ws"
}
}
查找到当前 ws 包的路径在 “/dev/module/ws1.0"
则变成require("/dev/module/ws1.0")
继而 查找
”/dev/module/ws1.0/package.json" 的main:“index.js"
并开始执行”/dev/module/ws1.0/index.js"
,并不会引起参考包位置的不确定。。这将有助于依赖处理和包管理,
- ,原“require”查找包将在许多文件位置中查找。如我上图:
在最深的路径 下执行require("object-assign")
将会依次 查找"…/node_module/object-assign","…/…/node_module/object-assign" , 随着包数目的加多将会导致io 的消耗
如果您可以从同一级别“./node_module” 将可以 快速找到依赖包, 如上 利用package.json
定义
moduleLocation 来确定依赖 ,也可以处理多个版本包依赖的问题 ,
我尽力把意思表示清楚,坐等翻译出现,…
@Trott @benjamingr