Vue项目发布后一般都会将本地的依赖包改为用CDN的形式引入,但是引入之后可能会出现各种问题,比如说我就遇到了Cannot read property 'catch' of undefined,这个catch应该是我在每个axios请求后面用以处理错误的捕获函数。在本地没有问题,为什么一用cdn就出现问题了呢?
稍加分析后我觉得可能是引入的cdn引入的依赖和本地的版本不太一样。
在vue项目文件夹(vue-cli3.x)下会有一个package.json,里面记录了项目用到的各种依赖以及版本信息,比如我的是这样的
//运行依赖
"dependencies": {
"axios": "^0.19.1",
"core-js": "^3.4.4",
"echarts": "^4.7.0",
"element-ui": "^2.4.5",
"nprogress": "^0.2.0",
"svgo": "^1.3.2",
"vue": "^2.6.10",
"vue-router": "^3.1.3"
}
所以我们只需要按照这个json对象修改我们对应引入cdn的版本就可以了
<link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css">
<!-- element-ui 的样式表文件 -->
<link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.13.0/theme-chalk/index.css">
<script src="https://cdn.staticfile.org/vue/2.6.10/vue.min.js"></script>
<script src="https://cdn.staticfile.org/vue-router/3.1.3/vue-router.min.js"></script>
<script src="https://cdn.staticfile.org/axios/0.19.1/axios.min.js"></script>
<script src="https://cdn.staticfile.org/echarts/4.7.0/echarts.min.js"></script>
<script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>
<!-- element-ui 的 js 文件 -->
<script src="https://cdn.staticfile.org/element-ui/2.13.0/index.js"></script>
这样我的问题就解决了。
还有就是发现使用package.json中ElementUI的版本以后一部分icon无法正确显示了,因此我就将ElementUI替换为了最高版本。目前暂未发现问题

Vue项目采用CDN引入依赖后,可能出现错误,如axios的catch函数失效。原因可能为CDN引入的依赖版本与本地不一致。解决办法是根据package.json中的版本信息调整CDN引用。此外,升级ElementUI到最新版可解决部分图标显示问题。
1478

被折叠的 条评论
为什么被折叠?



