Vue3 创建项目遇到的问题汇总

1.Uncaught SyntaxError: The requested module '/node_modules/.vite/vue-router.js?v=4b09f9b8' does not provide an export named 'default'

在这里插入图片描述

【解决】

vue-router的配置文件:

方案一:
import * as VueRouter from 'vue-router'
import routes from './routers'

const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes
})

方案二:
import {createRouter, createWebHashHistory} from 'vue-router'
import routes from './routers'

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

2. Uncaught Error: Catch all routes ("*") must now be defined using a param with a custom regexp.


【解决】
删除了 *(星标或通配符)路由

原因:Vue Router 不再使用 path-to-regexp,而是实现了自己的解析系统,允许路由排序并实现动态路由。由于我们通常在每个项目中只添加一个通配符路由,所以支持 * 的特殊语法并没有太大的好处。参数的编码是跨路由的,无一例外,让事情更容易预测。

修改路由配置:

// 原来vue2中:
  {
    path: '*',
    redirect: '/error'
  },
  
  // 现修改为:
  {
    path: '/:pathMatch(.*)*',
    redirect: '/error'
  },
 

3. typeError: Failed to fetch dynamically imported module:

在这里插入图片描述

【解决】

出现原因是alias配置有问题。

3.1 编译器报错:

Unrestricted file system access to "/src/views/Error" For security concerns, accessing files outside of serving allow list will be restricted by default in the future version of Vite. Refer to [https://vitejs.dev/config/#server-fs-allow](https://vitejs.dev/config/#server-fs-allow) for more details.

在这里插入图片描述

console报错:

GET [http://localhost:3000/src/views/Error?t=1630134194676](http://localhost:3000/src/views/Error?t=1630134194676) net::ERR_ABORTED 404 (Not Found)

【解决】

后缀问题(同问题4)

4. [plugin:vite:import-analysis] Failed to resolve import "../views/Error" from "src\router\routers.ts". Does the file exist?

在这里插入图片描述

【解决】

官方规定,在vite中导入.vue文件时后缀不能省略。

https://github.com/vitejs/vite/issues/178

同时,extensions 引入也不推荐省略后缀。https://cn.vitejs.dev/config/#resolve-extensions

resolve.extensions
类型: string[]
默认: [’.mjs’, ‘.js’, ‘.ts’, ‘.jsx’, ‘.tsx’, ‘.json’]
导入时想要省略的扩展名列表。注意,不 建议忽略自定义导入类型的扩展名(例如:.vue),因为它会影响 IDE 和类型支持。

// 原报错代码
const Error = () => import('../views/Error')

// vue3中需要加后缀
const Error = () => import('../views/Error.vue')

5. JavaScript Uncaught RangeError: Maximum call stack size exceeded at Object.resolve (vue-router.esm-bundler.js:1404)

【解决】
修改路由配置,嵌套路由不能使用vue2那种方式,要用如下新写法。

  // vue2 的方式
  {
    name: 'main',
    path: '/main',
    component: Main,
    redirect: '/error'
    meta: {
      title: 'main',
    },
    children: [{
        path: '/error',
        component: Error,
        meta: {
          title:'error'
        }
      }
    ]
  },


  // vue3 写法
  {
    name: 'main',
    path: '/main',
    component: Main,
    meta: {
      title: 'main',
    },
    children: [{
        path: '',  // 相当于替代 redirect: '/error'
        component: Error,
        meta: {
          title:'error'
        }
      }
    ]
  },

此时,按照上面的配置,当你访问 /user/eduardo 时,在 User 的 router-view 里面什么都不会呈现,因为没有匹配到嵌套路由。也许你确实想在那里渲染一些东西。在这种情况下,你可以提供一个空的嵌套路径

官方demo

6. TS2307: Cannot find module '@/router/index' or its corresponding type declarations.

.ts文件中,使用alias 方式import引入ts文件,会报错。
在这里插入图片描述
【解决】
tsconfig.json 文件中,增加alias配置。

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
       "@/*": ["./src/*"],
       "@comp/*": ["./src/components/*"],
       "@img/*": ["./src/assets/images/*"],
       "@api/*": ["./src/js/api/*"],
       "@util/*": ["./src/js/util/*"],
       "@style/*": ["./src/styles/*"],
       "@var/*": ["./src/styles/var.less"],
    }
  }
}

7. Whitelabel Error Page 报错

``在这里插入图片描述
错误写法:

  server: {
    proxy: {
      '/': {
        target: 'http://*******/',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\//, '')
      }
    }
  }

原因:
不能使用'/':,在路径中会直接拦截,所以页面找不到。
修改为:(/ 后随便加什么一个特殊的名字标识都可以)

  server: {
    proxy: {
      '/api': {
        target: 'http://*******/',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\//, '')
      }
    }
  }

8. TS7016: Could not find a declaration file for module ...

在.vue中import 接口.ts文件时报错,报错源码:
import {fun} from '@api/funfile.ts'

在这里插入图片描述

解决:
shims-vue.d.ts 文件中增加一句declare module '*.ts'
在这里插入图片描述

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用WebStorm创建Vue项目时,你可能会遇到一些警告和错误。例如,可能会出现一些关于npm配置的警告,你可以参考这篇博客文章()中的解决方法来解决这些问题创建完成后,你将会看到项目的结构。在WebStorm中创建Vue项目,一般会有一些默认的文件和文件夹,可以根据自己的需求进行修改和扩展。你可以在WebStorm的项目视图中查看项目的结构和文件。 当项目创建完成后,WebStorm会自动显示一个URL地址(例如http://localhost:8080/),你可以点击该地址来访问你的Vue项目的页面。如果页面能够正常显示,那么说明你的项目已经成功运行了。 总结来说,使用WebStorm创建Vue项目时,可能会遇到一些警告和错误,你可以参考相应的解决方法来解决这些问题创建完成后,你可以查看项目的结构,并通过访问指定的URL地址来验证项目是否成功运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [WebStorm创建Vue项目教程(五)创建第一个Vue项目](https://blog.csdn.net/j_l_sheng/article/details/125773828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [webstorm2019版本创建VUE项目](https://download.csdn.net/download/weixin_38682076/14886910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [webstorm编译软件创建vue项目框架并运行](https://blog.csdn.net/m0_66778036/article/details/130099934)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值