Nodejs开发之四: Package依赖关系 npm install 原理
1.例如: 安装依赖包:
C:\Program Files\nodejs\MyBook>npm install buffer
npm WARN mybook@1.0.0 No repository field.
+ buffer@5.6.0
added 1 package and audited 3 packages in 7.964s
found 0 vulnerabilities
C:\Program Files\nodejs\MyBook>npm install ignore
npm WARN mybook@1.0.0 No repository field.
+ ignore@5.1.8
added 1 package from 1 contributor and audited 4 packages in 1.695s
found 0 vulnerabilities
2. 安装目录结构
3. buffer的Package.json, 有两个依赖包, 在安装buffer的时候,同时安装到的项目的node_modules目录下, 而 ignore是一个纯 JS 模块,不依赖任何其他模块,
"dependencies": {
"base64-js": "^1.0.2",
"ieee754": "^1.1.4"
},
所有依赖包,在文件目录下, 都是这种扁平的方式来存储的.
如果我们在项目代码中引用了一个模块,模块查找流程如下:
在当前模块路径下搜索 => 在当前模块 node_modules 路径下搜素 => 在上级模块的 node_modules 路径下搜索 => 直到搜索到全局路径中的 node_modules