2016-12-08 66 views
0

我有一個遺留項目,它依賴於特定版本的npm包,它通過依賴鏈依賴於特定的npm幻影包,其二進制文件不再在註冊位置上聯機。這打破了項目的構建。我可以重寫URL npm從哪裏抽取包?

更新軟件包版本不是一個選項。

我可以通過手動獲取所需版本的phantomjs並將其放到我的系統的下載文件夾中來愚弄npm,但這是一種解決方法,我想要一個更清晰的修復程序,理想情況是位於配置腳本中。

我可以在我的項目的package.json或.npmrc文件中強制npm使用另一個url作爲package @ some版本,每次爲該項目運行「npm install」時?

回答

0

我想出,這是可能使用NPM-拆封(https://docs.npmjs.com/files/package-locks)。基本上,你可以在package.json中添加一個npm-shrinkwrap.json文件到你的項目中。在shrinkwrap文件中,可以覆蓋package.json中列出的任何特定軟件包 - 在該軟件包的依賴關係鏈中的任何位置,指定一個URL來從中提取依賴項包。

{ 
    "name": "MyProject", 
    "dependencies": { 
    "A" : { 
     "version" :"1.2.1", 
     "dependencies": { 
     "B": { 
     "version": "https://myBForkUrl.git" 
     } 
    } 
    } 
} 

如果MyProject的depeneds軟件包A,而這又依賴於B,但B是維護且具有嚴重的bug,我可以推出自己的B的叉,修正錯誤,並在https://myBForkUrl.git主持它,而不也不得不fork A.根據NPM的文檔,它看起來像這個重寫可以嵌套得儘可能深。

相關問題