npm 包安装位置
官方文檔:docs.npmjs.com/files/folde…
全局包安裝位置
-
Unix
npm install -g package # -> `{prefix}/lib/node_modules/package`# 為可執行文件在 `{prefix}/bin/` 目錄中創建鏈接 復制代碼 -
Windows: {prefix}/node_modules/
npm install -g package # -> `{prefix}/node_modules/package`# 為可執行文件在 `{prefix}/` 目錄中創建鏈接 復制代碼
prefix: docs.npmjs.com/misc/config…
局部包安裝位置
當執行 npm install foo@1.2.3 時:
npm 從當前工作目錄開始,在目錄樹中向上(父目錄方向)查找:
-
直到找到一個包含 package.json 文件或者 node_modules 目錄的目錄,則以該目錄為 package_root,并停止查找。
-
如果沒有找到包含 package.json 文件或者 node_modules 目錄的目錄,則以當前工作目錄為 package_root。
安裝 foo 包
將 foo 包的內容拷貝到 {package_root}/node_modules/foo。
在 {package_root}/node_modules/.bin/ 下創建相關可執行文件的鏈接。
安裝 foo 包的依賴包
假設 foo 包依賴 bar@1.2.3
如果 {package_root}/node_modules/ 中已經安裝了 bar@1.2.3,則不再安裝 bar@1.2.3。
如果 {package_root}/node_modules/ 中已經安裝了與bar@1.2.3 不同版本的 bar 包,則在 {package_root}/node_modules/foo/node_modules/ 目錄中安裝 bar@1.2.3。
如果 {package_root}/node_modules/ 中還沒有安裝任何版本的 bar 包,則在 {package_root}/node_modules/ 中安裝 bar@1.2.3。
按 (3) 中的方法遞歸安裝依賴包的依賴包。
scoped 包安裝位置
對于 scoped 包,假設安裝 @myorg/foo@1.2.3,與安裝非 scoped 包 foo@1.2.3 相比,只是在 foo 和 node_modules 中間多了一層 @myorg 目錄:
- npm install foo@1.2.3 -> .../node_modules/foo
- npm install @myorg/foo@1.2.3 -> .../node_modules/@myorg/foo
轉載于:https://juejin.im/post/5c999b30f265da611d7438c3
總結
- 上一篇: 四步搞定阿里云RDS云数据库恢复到本地m
- 下一篇: 利用系统提供的崩溃日志解Native层B