2015-10-05 226 views
-2
  • 我已經創建了一個版本節點模塊1.0.0
  • 我分享它吧
  • ,在其他測試項目中我嘗試使用這種依賴關係,偉大工程
  • 然後我更新模塊1.0.1版本並安裝全球範圍內,但尚未發佈
  • 於是我嘗試更新相關性的該項目測試版本1.0.1,但將相關不解決

只從遠程服務器解決依賴關係嗎?Node.js的衝突解決

模塊項目:

{ 
    "name": "my-module", 
    "version": "1.0.1", 
... 
} 

安裝在本地資源庫:

npm install --save 

的package.json:

{ 
    "name" : "my-project-test", 
    "version" : "0.0.1", 
    "dependencies" : { 
    "my-module": "1.0.1" 
    } 
    ... 
} 

產生的錯誤:

$ npm install 
npm ERR! Linux 3.16.0-45-generic 
npm ERR! argv "node" "/usr/bin/npm" "install" 
npm ERR! node v0.12.7 
npm ERR! npm v3.3.5 

npm ERR! No compatible version found: [email protected] 
npm ERR! Valid install targets: 
npm ERR! ["1.0.0"] 
npm ERR! 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR!  <https://github.com/npm/npm/issues> 

npm ERR! Please include the following file with any support request: 
npm ERR! ./npm-debug.log 

回答

1

你現在有你相依的多個安裝:

  1. 全球,您已使用npm i -g <name>安裝此是1.0.1版本。
  2. 本地,此版本以前安裝在版本1.0.0上。

由Node.js的嘗試定位通過名稱提及的模塊的順序如下:看到

  1. 檢查如果給定的模塊是芯模塊。
  2. 在當前目錄(項目目錄)中搜索名爲node_modules的目錄。
  3. 完成文件夾層次結構的檢查,檢查node_modules文件夾的每個級別。
  4. 查看節點中require.paths數組中列出的目錄路徑。

您的全球node_modules目錄是在第4個列表項中;很久以後當地的node_modules目錄。意味着程序停止在安裝的本地依賴項上。

節點確定版本1.0.0安裝在本地,並指出該錯誤。請注意包含No compatible version found: [email protected]的塊。這是因爲你的package.json1.0.1。一旦Node找到舊版本,查找將不會繼續,因此升級本地安裝或從Node中刪除它。

爲了將其刪除,請在您的項目目錄中使用npm uninstall <name>,以便從Node的方式中刪除對版本1.0.0的依賴,迫使它查找全局目錄。

源(一個很推薦閱讀!):