vite vue3 + typescript 错误解决Unexpected error when starting the router: ReferenceError: Cannot access 'index' before initialization
为了不浪费大家宝贵时间,可以直接看文尾解决方法。
这个错误报出来提示是路由问题,三个前端一起找问题,同事找到报错的vue文件,把如下代码:
import index from "./index";
export default index;
改成
import index from "./index.ts";
export default index;
问题解决了,但是vscode里代码飘红。原因应该是import index时,引入了index.vue,自已调自己,形成了死循环。
解决飘红的办法,打开tsconfig.json:
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue"
],
改成
"include": [
"**/*.ts",
"**/*.d.ts",
"**/*.tsx",
"**/*.vue"
],
确实不飘红了。但以前不用加.ts啊,另一个同事找到了原因,打开vite.config.js,注释掉下面这行代码,就可以不用:
extensions: ['.vue', '.js', '.json', '.mjs'],
百度了一下extensions作用:
导⼊时想要省略的扩展名列表 不建议使⽤ .vue 影响IDE和类型⽀持
那这样就优化一下,把extensions改成如下:
extensions: ['.ts', '.js', '.json', '.mjs'],
问题完美解决。