用yarn/npm管理依賴包的版本


在package.json中基本上都是用^來鎖定版本的,^只能鎖定大版本,比如^2.6.1,只能確定安裝的是>2.0.0,<2.9.9的,如果已經更新到了2.9.1版本,就會下載2.9.1版本。這樣就會存在安裝的版本和開發時版本不一致的問題,很可能其他同事的項目都沒有問題,只有你的項目啟動或者頁面有奇怪的報錯。

為了解決這個問題 ,我們可以將npm 換成yarn

mac安裝yarn命令

brew install yarn

如果你在使用nvm,為了防止nvm對node的管理作用,安裝時使用

brew install yarn --without-node

yarn install 會自動生成一個yarn.lock文件,其中聲明了每個安裝包現在安裝的版本,以后在每次用yarn重新安裝依賴的時候,都會優先下載yarn.lock中的版本。這樣就能保證每個同事在同一個版本上開發了。

那么如果我們要手動更新某個包的版本呢?比如package.json中element-ui的版本是^2.6.1,我們想使用2.9.1版本。

執行命令:yarn upgrade element-ui@2.9.1 

package.json中版本會指定2.9.1,並且yarn.lock也會更新,這樣其他同事在開發的時候,重新執行下yarn install,就會更新到指定的版本了。

 

當然,如果你還是想用npm完成鎖定版本的功能,也是可以的,但是要使用5以上版本,並且npm install很慢,即使配置了淘寶源,還是很慢,所以我是放棄了。

試了下cnpm install,發現並沒有生成packgae-lock.json文件,在網上查資料,說是cnpm install並不會生成lock文件,並且,就算項目中有lock文件,cnpm也不會讀取這個文件,只會按package.json下載,所以cnpm 並不支持版本鎖定。當然這只是道聽途說,如果有人試過了還請留言告訴我,在這我就偷個懶了。因為實在太慢了,cnpm install 也是經常socket hang up.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM