摘要:需要注意的是在版本后如果改了,且和文件不同,那么執(zhí)行時(shí)會(huì)根據(jù)中的版本號(hào)以及語義含義去下載最新的包,并更新文件。鎖定后帶來的的問題是每次依賴包有修訂版本號(hào)或者進(jìn)行兼容性功能添加次版本號(hào)版本更新后,的時(shí)候不會(huì)自動(dòng)更新。
最近開發(fā)遇到一個(gè)npm依賴導(dǎo)致的問題,報(bào)錯(cuò)如下。
經(jīng)過錯(cuò)誤定位,發(fā)現(xiàn)原因是項(xiàng)目中用了vue不同版本語法的寫法,如下所示 ,重點(diǎn)關(guān)注的是被**包圍的寫法。
** ** {{scope.row.quoteInfo.trd_cnt}} {{scope.row.quoteInfo.trd_cnt}} ** **
之前的開發(fā)人員用了兩種方法指定插槽(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,而我們項(xiàng)目中?package.json中的vue版本
?"vue": "^2.3.3",
?package.lock中的版本
"vue": { "version": "2.5.9", }
package.lock文件是后期添加的,因?yàn)閚pm5.0+后才支持這個(gè)功能。通過package.lock可以記錄和鎖定依賴樹的信息。初次install的時(shí)候,會(huì)自動(dòng)生成package.lock文件。 需要注意的是在V5.4.2版本后如果改了package.json,且package.json和lock文件不同,那么執(zhí)行npm install時(shí)npm會(huì)根據(jù)package中的版本號(hào)以及語義含義去下載最新的包,并更新package.lock文件。
鎖定后帶來的的問題是每次依賴包有bugfix(修訂版本號(hào))或者進(jìn)行兼容性功能添加(次版本號(hào))版本更新后,install的時(shí)候不會(huì)自動(dòng)更新。
在查明起因后,解決的方法是安裝使用新的vue版本,把原先的依賴包刪掉,此時(shí)有遇到一個(gè)問題了,因?yàn)槲业腸npm是4.X.X,每次安裝的時(shí)候是2.3.3,而換用npm(5.6)安裝是可以的(結(jié)果會(huì)是package.lock指定的版本)或者去掉?package.lock重新install(結(jié)果會(huì)是最新的vue包版本,還有配套的其它依賴更新)。
? small git:(20180531162035883_1003364(hrd5)) ? cnpm -v 4.3.2 small git:(20180531162035883_1003364(hrd5)) ? which cnpm /usr/local/bin/cnpm
如上所示,cnpm的重新安裝了不成功的原因是我使用了nvm來管理,每次是安裝對(duì)應(yīng)到nvm安裝目錄下,對(duì)應(yīng)當(dāng)前node環(huán)境的node-modules目錄下,把老的全局cnpm刪了,重新裝了下就可以了,結(jié)果如下。
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...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95344.html
摘要:但這并不意味著依賴版本是鎖死的。黃色表示不符合指定的語義化版本范圍,比如大版本升級(jí),升級(jí)可能會(huì)遇到兼容性問題。文件可以列出不想打包的文件,避免把一些無關(guān)的文件發(fā)布到上。 作者: LeanCloud weakish 分享一些 npm 包管理工具的實(shí)用小竅門,希望能夠略微提高下前端、Node.js 開發(fā)者的生活質(zhì)量。 絕大多數(shù)前端和 Node.js 開發(fā)者每天的日常工作都離不開 npm,不...
摘要:常見問題的中的和會(huì)匹配最近的小版本依賴包,比如會(huì)匹配所有版本,但是不包括會(huì)匹配最新的大版本依賴包,比如會(huì)匹配所有的包,包括,但是不包括你也有可能會(huì)看見在中模塊的版本號(hào)前面既沒有也沒有就像下面那樣上面的情況屬于精確安裝模塊指定的版本號(hào)。 常見問題 1.npm 的package.json中的~和^ ~會(huì)匹配最近的小版本依賴包,比如~1.2.3會(huì)匹配所有1.2.x版本,但是不包括1.3.0...
摘要:由于文件中版本號(hào)的特點(diǎn),下面三個(gè)版本號(hào)在安裝的時(shí)候代表不同的含義。安裝版本統(tǒng)一為了防止拉取到不同的版本,有一個(gè)鎖定文件記錄了被確切安裝上的模塊的版本號(hào)。 showImg(https://segmentfault.com/img/bVbs8Rg?w=1920&h=1080); 一位用不好包管理器的前端,是一個(gè)入門級(jí)前端,一個(gè)用不好webpack的前端,是一個(gè)初級(jí)前端 三個(gè)包管理器是可以一...
摘要:由于文件中版本號(hào)的特點(diǎn),下面三個(gè)版本號(hào)在安裝的時(shí)候代表不同的含義。安裝版本統(tǒng)一為了防止拉取到不同的版本,有一個(gè)鎖定文件記錄了被確切安裝上的模塊的版本號(hào)。 showImg(https://segmentfault.com/img/bVbs8Rg?w=1920&h=1080); 一位用不好包管理器的前端,是一個(gè)入門級(jí)前端,一個(gè)用不好webpack的前端,是一個(gè)初級(jí)前端 三個(gè)包管理器是可以一...
摘要:由于文件中版本號(hào)的特點(diǎn),下面三個(gè)版本號(hào)在安裝的時(shí)候代表不同的含義。安裝版本統(tǒng)一為了防止拉取到不同的版本,有一個(gè)鎖定文件記錄了被確切安裝上的模塊的版本號(hào)。 showImg(https://segmentfault.com/img/bVbs8Rg?w=1920&h=1080); 一位用不好包管理器的前端,是一個(gè)入門級(jí)前端,一個(gè)用不好webpack的前端,是一個(gè)初級(jí)前端 三個(gè)包管理器是可以一...
閱讀 1060·2023-04-26 01:34
閱讀 3462·2023-04-25 20:58
閱讀 3701·2021-11-08 13:22
閱讀 2187·2019-08-30 14:17
閱讀 2597·2019-08-29 15:27
閱讀 2754·2019-08-29 12:45
閱讀 3222·2019-08-29 12:26
閱讀 2888·2019-08-28 17:51