最近一直在使用 Vue2 + Composition API
开发项目。所以对于当看到 vue2.7
正式版的发布的时候,是开心的。
Vue 2.7 从 Vue 3 向后移植了一些最重要的功能
- Composition API
- SFC script setup
- SFC CSS v-bind
等等…,十分接近 vue3
但是第二天我的项目部署线上的时候,就突然一直报错。
编译时没有报错,但是到了线上就报错,如
Cannot read property '$router' of undefined”
也就是 Composition API
语法失效了。
定位了很久发现是vue2.6自动更新为2.7了,导致 @vue/Composition-api
无效。
最后锁定版本号即可。
"vue": "^2.6.7" => "vue": "2.6.7",
去掉 ^
- ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
- ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
- ✱这意味着安装最新版本的依赖包