摘要:需要注意的是在版本后如果改了,且和文件不同,那么執行時會根據中的版本號以及語義含義去下載最新的包,并更新文件。鎖定后帶來的的問題是每次依賴包有修訂版本號或者進行兼容性功能添加次版本號版本更新后,的時候不會自動更新。
最近開發遇到一個npm依賴導致的問題,報錯如下。
經過錯誤定位,發現原因是項目中用了vue不同版本語法的寫法,如下所示 ,重點關注的是被**包圍的寫法。
** ** {{scope.row.quoteInfo.trd_cnt}} {{scope.row.quoteInfo.trd_cnt}} ** **
之前的開發人員用了兩種方法指定插槽(slot)的作用域,查看了下官方的更新記錄
In 2.5, the scope attribute has been deprecated (it still works, but you will get a soft warning). Instead, we now use slot-scope to denote a scoped slot, and it can be used on a normal element/component in addition to
意思就是說在2.5以后,把scope換成了slop-scope,而我們項目中?package.json中的vue版本
?"vue": "^2.3.3",
?package.lock中的版本
"vue": { "version": "2.5.9", }
package.lock文件是后期添加的,因為npm5.0+后才支持這個功能。通過package.lock可以記錄和鎖定依賴樹的信息。初次install的時候,會自動生成package.lock文件。 需要注意的是在V5.4.2版本后如果改了package.json,且package.json和lock文件不同,那么執行npm install時npm會根據package中的版本號以及語義含義去下載最新的包,并更新package.lock文件。
鎖定后帶來的的問題是每次依賴包有bugfix(修訂版本號)或者進行兼容性功能添加(次版本號)版本更新后,install的時候不會自動更新。
在查明起因后,解決的方法是安裝使用新的vue版本,把原先的依賴包刪掉,此時有遇到一個問題了,因為我的cnpm是4.X.X,每次安裝的時候是2.3.3,而換用npm(5.6)安裝是可以的(結果會是package.lock指定的版本)或者去掉?package.lock重新install(結果會是最新的vue包版本,還有配套的其它依賴更新)。
? small git:(20180531162035883_1003364(hrd5)) ? cnpm -v 4.3.2 small git:(20180531162035883_1003364(hrd5)) ? which cnpm /usr/local/bin/cnpm
如上所示,cnpm的重新安裝了不成功的原因是我使用了nvm來管理,每次是安裝對應到nvm安裝目錄下,對應當前node環境的node-modules目錄下,把老的全局cnpm刪了,重新裝了下就可以了,結果如下。
small git:(20180531162035883_1003364(hrd5)) ? cnpm -v cnpm@6.0.0 small git:(20180531162035883_1003364(hrd5)) ? which cnpm /Users/jsdt/.nvm/versions/node/v8.9.4/bin/cnpm
參考鏈接
https://gist.github.com/yyx99...
https://cloud.tencent.com/dev...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95344.html
摘要:但這并不意味著依賴版本是鎖死的。黃色表示不符合指定的語義化版本范圍,比如大版本升級,升級可能會遇到兼容性問題。文件可以列出不想打包的文件,避免把一些無關的文件發布到上。 作者: LeanCloud weakish 分享一些 npm 包管理工具的實用小竅門,希望能夠略微提高下前端、Node.js 開發者的生活質量。 絕大多數前端和 Node.js 開發者每天的日常工作都離不開 npm,不...
摘要:常見問題的中的和會匹配最近的小版本依賴包,比如會匹配所有版本,但是不包括會匹配最新的大版本依賴包,比如會匹配所有的包,包括,但是不包括你也有可能會看見在中模塊的版本號前面既沒有也沒有就像下面那樣上面的情況屬于精確安裝模塊指定的版本號。 常見問題 1.npm 的package.json中的~和^ ~會匹配最近的小版本依賴包,比如~1.2.3會匹配所有1.2.x版本,但是不包括1.3.0...
摘要:由于文件中版本號的特點,下面三個版本號在安裝的時候代表不同的含義。安裝版本統一為了防止拉取到不同的版本,有一個鎖定文件記錄了被確切安裝上的模塊的版本號。 showImg(https://segmentfault.com/img/bVbs8Rg?w=1920&h=1080); 一位用不好包管理器的前端,是一個入門級前端,一個用不好webpack的前端,是一個初級前端 三個包管理器是可以一...
摘要:由于文件中版本號的特點,下面三個版本號在安裝的時候代表不同的含義。安裝版本統一為了防止拉取到不同的版本,有一個鎖定文件記錄了被確切安裝上的模塊的版本號。 showImg(https://segmentfault.com/img/bVbs8Rg?w=1920&h=1080); 一位用不好包管理器的前端,是一個入門級前端,一個用不好webpack的前端,是一個初級前端 三個包管理器是可以一...
摘要:由于文件中版本號的特點,下面三個版本號在安裝的時候代表不同的含義。安裝版本統一為了防止拉取到不同的版本,有一個鎖定文件記錄了被確切安裝上的模塊的版本號。 showImg(https://segmentfault.com/img/bVbs8Rg?w=1920&h=1080); 一位用不好包管理器的前端,是一個入門級前端,一個用不好webpack的前端,是一個初級前端 三個包管理器是可以一...
閱讀 923·2023-04-26 01:34
閱讀 3356·2023-04-25 20:58
閱讀 3259·2021-11-08 13:22
閱讀 2107·2019-08-30 14:17
閱讀 2522·2019-08-29 15:27
閱讀 2673·2019-08-29 12:45
閱讀 2996·2019-08-29 12:26
閱讀 2811·2019-08-28 17:51