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