Vue项目的常见报错问题解决

1、'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件
image.png

解决办法:
现在使用webpack要同时安装webpack-cli这个包,才可以调用webpack和webpack-dev-server这些命令。
cnpm install webpack webpack-dev-server webpack-cli --save-dev

2、"export 'default' (imported as 'ol') was not found in 'ol' (黄色警告,但是不可忽略,会导致组件无法正常引用而不能使用)

解决办法:
导入方式改为: import * as G2 from '@antv/g2'
原因:动态组件无法识别第三方插件的引用,需要使用import * as 方法进行重命名

3、报“TypeError: that.$refs.videoItem.getBoundingClientRect is not a function“在使用ref获取节点位置的时候报错

解决办法:
.$refs 拿到的是VueComponent,加个.$el就能拿到了
let itemH= this.$refs.videoItem.$el.getBoundingClientRect().top;

拿不到$ref,报undefine的时候:

  1. 检查节点是否使用了v-if或者v-show,如果初始化时节点并没有被渲染出来,那么是获取不到$ref的
  2. 是否在页面还没有渲染完成就获取$refs,此时应该写在mounted函数中,如果还是获取不到,则应该使用this.$nextTick(()=>{})
4、打包成dist文件以后,index.html加载空白

没有修改config配置文件,直接打包,系统默认的是’/’(根目录),而不是’./’(当前目录),从而导致路径不对,页面加载不出来。
针对vue-cli3.0以下版本的可以直接将config/index.js文件的assetsPublicPath: ‘/’;改为assetsPublicPath: ‘./’; 然后再重新打包一次就可以了。


image.png

对于vue-cli3.0及以上版本没有config配置文件的。需要自己在项目的根目录下手动建一个配置文件并添上以下代码:然后在重新打包一次就可以了。

module.exports = {
publicPath: './'
}
image.png

经过上面一番操作后,我点击导航栏它是这个样子的:

image.png

百度得知是我开发时路由的方式选的不同,才导致这样。

vue-router总共有三种模式:https://blog.csdn.net/lcj529/article/details/108740607这篇博客里面讲了这三种路由方式。

具体解决办法:将router中的index.js 中的mode: "history"注释掉,然后再重新打包即可。

image.png
5、Vue.js前台报Uncaught (in promise) cancel错误解决办法

this.$confirm方法内置promise方法,所以不能把.catch()去掉(因为取消操作时,无法捕获)
解决办法:
this.$confirm方法后加上.catch方法即可,注意要写上空方法体,我第一次没写没去掉

 del: function (pageId) { 
this.$confirm('您确认删除吗?', '提示', {}).then(() => { 
//调用服务端接口 
cmsApi.page_del(pageId).then(res => {
 if (res.success) { 
this.$message.success("删除成功") 
//刷新页面 this.query() 
} else {
 this.$message.error("删除失败") 
} }) }).catch(()=>{
});  //注意这里,这里是重点!!!
 }
6、关于vue打包后,访问不到页面和访问不到图片

vue项目完成打包上线的时候很多人都会碰到静态资源找不到,常见的有两个
第一种:js,css路径不对
解决办法:打开config/index.js,将其中的assetsPublicPath值改为’./’


image.png

第二种:css中引用的图片资源找不到
我的项目文件中有一段css,其中引用了一个背景图片


image.png

“src/assets/”文件夹下有这张图片,打包后路径发生变化这个图片就找不到了,解决办法:
打开“build/utils.js”,增加一行代码即可


image.png
7、Module build failed (from ./node_modules/image-webpack-loader/index.js):Error: Cannot find module 'gifsicle

这是由于webpack-image-loader没有完全拉取下来:
webpack-image-loader依赖的四个图片处理库都需要拉取bin文件

"dependencies": {
"imagemin-gifsicle": "^5.1.0",
"imagemin-mozjpeg": "^6.0.0",
"imagemin-pngquant": "^5.0.0",
"imagemin-svgo": "^5.2.1",
},
解决办法:
需要cnpm install webpack-image-loader 就能将 gifsicle 下载下来

8、Eslint 报错:Type of the default value for 'data' prop must be a function

在写形如prop: {type: Array; default: []}的代码时,eslint常会出现这样的错误提示,
翻译: prop的默认值data必须是一个函数
解决办法:
修改方式1
props: {arr: {type: Array,default: function () { return [] }}}

修改方式2(es6)
props: {
arr: {
type: Array,
default: () => [] // es6的箭头函数
}
}

9、ReferenceError: _ is not defined

解决办法:
1、 npm install underscore --save
2、在 自己的组件内 引入 import _ from "underscore"

10、Eslint : Expected error to be handled

这是因为回调函数里面的参数error没有运用到
解决办法:
所以可以不设置参数,或者在回调函数内console.log(error)


image.png
11、npm install 报错解决(To install them, you can run: npm install --save core-js/modules/es6.array)

解决办法:
cnpm install core-js@2

12、Browserslist: caniuse-lite is outdated. Please run next command npm update

解决办法:

cnpm update caniuse-lite

删了node_modules/caniuse-lite和node_modules/browserslist两个文件夹

cnpm i --save-dev caniuse-lite browserslist

12、npm run serve报错

Error loading C:\Users\30414\Desktop\work\jiuwei_cloud\artemis-plus\ vue.config.js:
ERROR ValidationError: Invalid options object. Ignore Plugin has been initialized using an options object that does not match the API schema.

  • options should be one of these:
    object { resourceRegExp, contextRegExp?} | object { checkResource }
    Details:
    • options misses the property 'resourceRegExp'. Should be:
      RegExp
      -> A RegExp to test the request against.
    • options misses the property 'checkResource'. Should be:
      function
      -> A filter function for resource and context.

解决办法:
vue.config.js:

configureWebpack: {
    plugins: [
      // Ignore all locale files of moment.js
      // new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
      // 修改为这样:
new webpack.IgnorePlugin({
        resourceRegExp: /^\.\/locale$/,
        contextRegExp: /moment$/,
      }),
      createThemeColorReplacerPlugin(),
    ],
  },

参考博客:
https://www.cnblogs.com/wangyfax/p/12289636.html
https://blog.csdn.net/weixin_43267006/article/details/105440882
https://www.cnblogs.com/blueball/p/11328259.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339

推荐阅读更多精彩内容