首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置“`vite plugin-pages`”,无法找到模块`~页面‘

如何设置“`vite plugin-pages`”,无法找到模块`~页面‘
EN

Stack Overflow用户
提问于 2022-04-18 01:54:43
回答 3查看 1.4K关注 0票数 1

我试图在vite-plugin-pages的帮助下,使用Vite为Vue 3应用程序设置基于文件系统的路由。

我使用yarn create vitevue-ts作为选项创建了这个项目,并通过yarn add vite-plugin-pages --devyarn add vue-router添加了插件。

在github上的自述文件之后,我在我的vite.config.ts中添加了以下内容

代码语言:javascript
复制
import Pages from 'vite-plugin-pages'

export default {
  plugins: [
    // ...
    Pages(),
  ],
}

然而,在下一步,在main.ts

代码语言:javascript
复制
import { createRouter } from 'vue-router'
import routes from '~pages'

const router = createRouter({
  // ...
  routes,
})

我似乎无法从~pages中导入。我找不到模块。vue-router本身工作正常,因为我可以创建一个路由器,自己声明routes。在vite模板中,他们似乎在使用import routes from 'virtual:generated-pages',我不知道这两种方法是如何工作的。

因此,问题是,我将如何生成动态路由,并作为一个整体,设置vite-plugin-pages的使用

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-18 07:38:12

你可以这样做:

代码语言:javascript
复制
import Pages from "vite-plugin-pages" 

export default defineConfig({ 
    plugins: [ 
        Pages({
            pagesDir: [
                {dir: 'src/pages', baseRoute: ''},
            ],
            extensions: ['vue'],
            syncIndex: true,
            replaceSquareBrackets: true,
            extendRoute(route) {
                if (route.name === 'about')
                    route.props = route => ({query: route.query.q})

                if (route.name === 'components') {
                    return {
                        ...route,
                        beforeEnter: (route) => {
                            // eslint-disable-next-line no-console
                            // console.log(route)
                        },
                    }
                }
            },
        }), 
    ],
});

然后在main.js

代码语言:javascript
复制
import { createRouter, createWebHistory } from 'vue-router';
import generatedRoutes from 'virtual:generated-pages'; 

const router = createRouter({
  history: createWebHistory(),
  routes: generatedRoutes,
});
票数 1
EN

Stack Overflow用户

发布于 2022-09-14 03:18:39

您还可以在任何类型声明中声明引用。

代码语言:javascript
复制
/// <reference types="vite-plugin-pages/client" />
票数 1
EN

Stack Overflow用户

发布于 2022-04-24 07:33:50

代码语言:javascript
复制
// tsconfig.json
"compilerOptions": {
    ...
    "types":  ["vite-plugin-pages/client"]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71906886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档