我們還沒有在應用程序中將node_modules文件夾提交到修訂控制。我們的構建流程和開發者指令包括在初始檢查時手動運行「npm install」以安裝所需的節點模塊。我們的package.json文件詳細說明了特定的依賴版本。使用NPM/Node/package.json修訂控制和依賴關係解析
最近,我們的自動構建破了,因爲一個下游依賴打破了由於最近的第三方提交,我認爲這是不可能的。我們的package.json文件如下:
{
"name": "test-package",
"description": "Test Package",
"version": "1.0.0",
"license": "UNLICENSED",
"private": true,
"repository": { "type": "svn", "url": "" },
"dependencies": {
"extend": "3.0.0",
"windows-registry": "0.1.3"
}
}
具體來說,我們對「Windows的註冊表」版本依賴「0.1.3」,因爲該模塊(「參考」版本「1.2.0孩子依賴的爆發「)。從「Windows的註冊表」的package.json文件的依賴關係如下:
"dependencies": {
"debug": "^2.2.0",
"ffi": "^2.0.0",
"ref": "^1.2.0",
"ref-struct": "^1.0.2",
"ref-union": "^1.0.0"
}
我會假設「Windows的註冊表」總是引用「裁判」包版「1.2.0」,但它是實際上拉動了版本「1.3.4」,然後是最近的「1.3.5」,這打破了我們的構建。我在package.json文件中爲「ref」驗證它不是版本「1.2.0」。 「ref」的package.json文件非常龐大,文件中的各個鍵下面有很多值,比如「[email protected]^1.2.0」。是的package.json文件中有趣的部分如下:
{
/* Lots of other stuff */
"_spec": "[email protected]^1.2.0",
"version": "1.3.4"
}
爲什麼NPM不加載相同一致的可重複的依賴關係圖?我們應該將node_modules提交給我們的修訂控件嗎?
在我的程序員想要讀到這樣一個正則表達式的CARRET而且感覺更具體的我 - 這就是我得到的不是閱讀文檔更好。我想用這種說法來確保您的依賴性是一致的唯一方法是提交您的節點模塊?這真的很臭,因爲它很大,並在bin文件夾中包含編譯的二進制文件等。有沒有其他辦法呢? – jriffel73