gabakugik
@gabakugik (GABAKU GIK)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Vue Routerでわからない部分があります

Q&A

Closed

解決したいこと

Vue routerを動かしたい

例)
Vue routerをうごかしたいがエラーがでる。

このサイトと同じようにやっているのになぜかエラーがでる

発生している問題・エラー

[plugin:vite:import-analysis] Failed to resolve import "@/views/Home.vue" from "src/router.ts". Does the file exist?
/app/vite-project/src/router.ts:2:17
1  |  import { createRouter, createWebHistory } from "vue-router";
2  |  import Home from "@/views/Home.vue";
   |                    ^
3  |  export default createRouter({
4  |    history: createWebHistory(),
ツリー構造
drwxr-xr-x 6 root root 4096 Aug 24 01:50 ../
-rw-r--r-- 1 root root  442 Aug 24 01:47 App.vue
drwxr-xr-x 2 root root 4096 Aug 24 00:46 assets/
drwxr-xr-x 2 root root 4096 Aug 24 00:46 components/
-rw-r--r-- 1 root root  193 Aug 24 01:48 main.ts
-rw-r--r-- 1 root root  410 Aug 24 01:49 router.ts
-rw-r--r-- 1 root root 1310 Aug 24 00:46 style.css
drwxr-xr-x 2 root root 4096 Aug 24 01:34 views/
-rw-r--r-- 1 root root   38 Aug 24 00:46 vite-env.d.ts
App.vue
<template>
  <nav>
    <router-link to="/">Home</router-link> | <router-link to="/about">About</router-link> |
    <router-link to="/contact">Contact</router-link>
  </nav>
  <main>
    <router-view />
  </main>
</template>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>
main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')
router.ts
import { createRouter, createWebHistory } from 'vue-router'
import Home from '@/views/Home.vue'

export default createRouter({
  history: createWebHistory(),
  routes: [
    {
      path: '/',
      component: Home,
    },
    {
      path: '/about',
      component: () => import('@/views/About.vue'),
    },
    {
      path: '/contact',
      component: () => import('@/views/Contact.vue'),
    },
  ],
})

あとは
viewsの中にAbout.vue、Home.vue、Contact.vueがあり、

<template>
  <h2>Home</h2>
</template>

があるだけです。
よろしくお願いします。
ほかにここの部分どうなっているとかあれば書きます。

環境はhttps://qiita.com/gabakugik/items/cded7e8aaa014025d8ba
で作っています

解決法
vite.config.jsの内容をコピーすればいける。

0

1Answer

@/ で始まるパスから import できなくてエラーが出ていますね。 import できるようにする設定は、参考元のページにある vite.config.js の中に書いてありますが、ローカルに存在しないようです。内容をコピーしてローカルに作れば解決すると思います。

2Like

Comments

  1. @gabakugik

    Questioner

    できました。
    vite.config.js重要ですね。
    本当にありがとうございます。

Your answer might help someone💌