2017-06-22 66 views
2

我安裝我的包的DEPS時遇到這個錯誤:EINTEGRITY:NPM 5.0完整性檢查和modernizr.com依賴

$ npm i 
npm ERR! code EINTEGRITY 
npm ERR! sha1-tU7jWojzuU8MIY2VLAx+BwluNo0= integrity checksum failed when using sha1: wanted sha1-tU7jWojzuU8MIY2VLAx+BwluNo0= but got sha1-oXYP0kzpbhku0KU+phy353lbBhQ=. (26624 bytes) 

npm ERR! A complete log of this run can be found in: 
npm ERR!  /home/tlenex/.npm/_logs/2017-06-22T10_18_19_773Z-debug.log 

的問題是我Modernizr依賴:

"dependencies": { 
    "Modernizr": "https://modernizr.com/download?setclasses-flash" 
} 

是有沒有辦法解決這個問題或者忽略這個完整性檢查?

目前我有再次運行

npm i https://modernizr.com/download?setclasses-flash 

把事情的工作,將覆蓋"integrity"領域"Modernizr"package-lock.json。 每當Modernizr包中的變化發生時,都會發生這種情況,並且需要重新安裝我的包相關性(例如,每次在CI構建時)

如果沒有其他解決方法?我希望我不會必須把package-lock.json.gitignore文件:(

更多關於我的環境數據:

$ npm -v 
5.0.3 
$ node -v 
v6.11.0 

回答

0

完整性字段的一點是,當事情已經改變,提醒你,所以如果你做不希望它存在,你可以在你的npmrc中禁用package-lock.json文件只需設置package-lock=false

注意:我是Modernizr的開發者,並且與npm-cli團隊討論了這個問題。似乎是npm5和早期版本之間的SHA類型的變化。刪除node_modules文件夾將修復它

+0

那麼重點是,我不想禁用它的其他包和依賴項。 因此,目前爲止''node_modules''是唯一的選擇。 完美的解決方案是僅禁用一個鏈接,域或包名稱的包鎖SHA檢查。 – tlenex

+0

我也可以移動到npm的倉庫「modernizr」包中,創建自己的構建器並讓這個問題沒有解決。但目前我沒有時間這樣做。 – tlenex

1
  1. 找到所有過時的包和更新主題:

    npm outdated -g sudo npm i -g outDatedPKG

  2. 升級NPM來lateste版本:

    sudo npm i -g npm

  3. 刪除package-lock.json文件。

  4. 刪除_cacache目錄在〜/ .npm:

    npm cache verify

    4.1。每當我發現錯誤時,請執行步驟2 & 3。

  5. 如果仍然出現錯誤,明確NPM的緩存:

    npm cache clean --force

+0

當這個問題在一個團隊的20多個開發人員中擴大並且大量CI構建時,這不是一個好的解決方案。 – tlenex

0

只需要做兩件事的解決方案

第一: NPM緩存清理--force

秒: NPM我-g NPM

,比安裝ü想要什麼

+0

當這個問題在團隊中的20多個開發人員中擴大並且大量CI構建時,這不是一個好的解決方案。 – tlenex

+0

該解決方案適用於我 –

1

我有同樣的錯誤,我解決了它的:

  1. 刪除包lock.json
  2. 運行「NPM安裝「