1.问题

利用vue cli 新建vue2项目,安装vue-router后浏览器控制台报错:
Uncaught TypeError: Object(…) is not a function
在这里插入图片描述终端这边爆
warning in ./node_modules/vue-router/dist/vue-router.esm-bundler.js "export ‘watchEffect’ was not found in 'vue’
在这里插入图片描述
新创建的vue2项目除了vue-router什么也没安装
vue-router.esm-bundler.js在提示我们这个报错与vue-router有关

2.问题所在和解决

  • 创建的是vue2项目
    确定是vue-router的问题后,想了半天原来是安装vue-router时没有指定版本,然后npm自动下的是最新版,去package.json 一看果然:
 "dependencies": {
    "core-js": "^3.6.5",
    "vue": "^2.6.11",
    "vue-router": "^4.0.12"
  },

问题是:vue-router版本太高和vue2起冲突了,虽然router4.X的大部分的 Vue Router API 都没有变化,但vue-router 4.x 只能结合 vue3 进行使用,vue-router 3.x 只能结合 vue2 进行使用~(网上查的说法,我翻了下router官方文档没找到这样的

解决也很简单:卸载4版本的router,@指定版本装3.x的vue-router即可,我按自己的习惯安装3.5.2的vue-router亲测可用~

命令如下

  • npm uninstall vue-router
  • npm i vue-router@3.5.2
Logo

前往低代码交流专区

更多推荐