前情提要
项目依赖: vue, vuex, vue-router, element-ui
项目语言: Typescript
升级目标:
1.4.6
->^2.0.0
升级步骤
1. 依赖升级
修改package.json
,部分关键依赖如下:
{
dependencies: {
"element-ui": "2.0.9",
"vue": "2.5.2",
"vue-router": "3.0.1",
"vuex": "3.0.0"
},
devDependencies: {
"vue-class-component": "^6.0.0",
"vue-loader": "^13.3.0",
"vue-property-decorator": "^6.0.0",
"vue-template-compiler": "2.5.2",
}
}
修改完成后, 运行npm install
更新依赖, 如果不放心可以将node_modules
文件夹删除后运行
2. 修改ElementUI非兼容性更新
参照ElementUI 的更新日志中的非兼容性更新
部分, 检查项目代码, 将对应的代码修改为更新后的版本
如:
移除 theme-default, 新增 theme-chalk 主题
对应将main.js
中
import 'element-ui/lib/theme-default/index.css'
改为
import 'element-ui/lib/theme-chalk/index.css'
这一步更新涉及面特别广, 工作量比较大, 而且要细心,
具体的更新内容看项目而定, 不能一一细述. 基本的办法就是, 一条一条检查非兼容性更新的内容, 然后通过全局搜索
,引用搜索
等方式更新项目代码
这一步做完之后, 项目基本可以编译通过了, 但可能还不能跑起来, 如果跑不起来可以试试第三步
3. 依赖的非兼容性更新
在更新的依赖中, 也有非兼容性跟新的内容, 对以上几个依赖分别去查看其Release Note
尤其是大版本的Release Note
的内容,
比如:
Vue.js v2.5.0 Level E 中说到依赖vue-loader >= 13.3.0
所以vue-loader 要做相应更新
更新了之后呢, 去看看vue-loader
的更新日志:
Vue-Loader v13.0.0中对路由的引用方式做了调整, 所以路由引用有如下修改:
// before
const Foo = require('./Foo.vue')
// after
const Foo = require('./Foo.vue').default
这一步特别容易产生坑, 上面这两条都是踩了好久才出来的, 可能还有更多
4. Ts相关
- 由于ElementUI中添加了
types声明
所以要将之前项目中关于ElementUI的types声明
删除
5. 验证和微调
到这一步, 如果没有什么意外, 项目应该是可以跑起来的, 如果跑不起来, 可以根据报错信息做相应的修改
将项目运行起来后, 去检查项目的每个页面和功能, 看是否有页面错乱或者功能问题, 如果有的话, 参考ElementUI2.0
和 Vue 2.5
的更新日志做相关调整.
另外, 更相信了UI主题之后, 像表格, 标签之类的组件显示样式也有比较大改变, 也可以做相应的微调.
然后可以去浏览一遍2.0.0之后的几个版本
的跟新日志, 看看自己项目还有什么需要跟新的.
更新完成 !