2017-07-27 24 views
1

你能告訴我,爲什麼我們需要NPM 5或以上,以避免語義版本的問題?換句話說,我們如何使用package-lock.json文件來避免它?如果我們在同一個項目的所有開發機器上使用相同的package.json文件,我們不能避免這個問題嗎?我在這裏有點困惑。希望你能給出一個反饋。語義版本的問題,NPM 5或以上

回答

2

這樣就可以避免如果您package.json文件列表包,比如:

"@angular/core": "4.2.6", 
"@angular/forms": "4.2.6", 
"@angular/http": "4.2.6", 

,而不是

"@angular/core": "^4.2.6", 
"@angular/forms": "^4.2.6", 
"@angular/http": "~4.2.6", 

通過消除package.json NPM波浪或蓋(〜,^)符號將精確安裝所有機器上的相同版本。但是它可以安全地添加波浪號或帽標,因此您可以在不更新文件的情況下安裝軟件包的小版本更新。但是有時候這可能會導致問題,因爲軟件包開發人員在小版本中打包了一個重大更改。

package-lock.json會做同樣的,它消除了波浪或帽標誌,標誌着要安裝包的具體版本。並且會在安裝軟件包時使鎖定文件優先獲取軟件包版本信息。

編輯:從Angular University在Youtube尼斯解釋。

+0

非常感謝很好的解釋:) – Sampath