博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目中npm依赖问题
阅读量:6955 次
发布时间:2019-06-27

本文共 1664 字,大约阅读时间需要 5 分钟。

最近开发遇到一个npm依赖导致的问题,报错如下。

slot-error
经过错误定位,发现原因是项目中用了vue不同版本语法的写法,如下所示 ,重点关注的是被**包围的写法。

**
**

之前的开发人员用了两种方法指定插槽(slot)的作用域,查看了下官方的更新记录

In , 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 <template>

意思就是说在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 -v4.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 -vcnpm@6.0.0  small git:(20180531162035883_1003364(hrd5)) ✗ which cnpm/Users/jsdt/.nvm/versions/node/v8.9.4/bin/cnpm

参考链接

转载地址:http://cktil.baihongyu.com/

你可能感兴趣的文章
两个有序数组的合并
查看>>
JZ-C-29
查看>>
声明式事务xml Spring
查看>>
Activity的启动模式(android:launchMode)
查看>>
CQOI2007 涂色 paint (区间dp)
查看>>
Bootstrap定制(二)less基础语法
查看>>
js 数组排序
查看>>
android笔记--处理started service的多次启动请求(转)
查看>>
UE4 学习笔记1 变量的初始化
查看>>
基本子类设计
查看>>
编码和解码
查看>>
UML 依赖 泛化 关联关系的区别
查看>>
ajaxSubmit与ajaxFileUpload的空值
查看>>
android 拨打电话与发送短信
查看>>
Spring学习(4)IOC容器配置bean:定义与实例化
查看>>
DOS查看端口占用及杀掉进程命令
查看>>
animate动画解析
查看>>
Curling 2.0 (poj 3009 dfs)
查看>>
SQL Server数据库存在判断语句及系统表简介
查看>>
如何查找完全二叉树最后一层的最右边的结点
查看>>