摘要:需要注意的是在版本后如果改了,且和文件不同,那么执行时会根据中的版本号以及语义含义去下载最新的包,并更新文件。锁定后带来的的问题是每次依赖包有修订版本号或者进行兼容性功能添加次版本号版本更新后,的时候不会自动更新。
最近开发遇到一个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...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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的前端,是一个初级前端 三个包管理器是可以一...
阅读 922·2023-04-26 01:34
阅读 3356·2023-04-25 20:58
阅读 3258·2021-11-08 13:22
阅读 2107·2019-08-30 14:17
阅读 2521·2019-08-29 15:27
阅读 2673·2019-08-29 12:45
阅读 2996·2019-08-29 12:26
阅读 2810·2019-08-28 17:51