在Vue 3中,import.meta.glob是一个新的特性,用于在构建时动态地导入模块。但是,由于import.meta.glob目前还不是标准的JavaScript语法,因此在普通的JavaScript文件中无法直接使用。

解决这个问题的方法是使用Vue CLI提供的插件@rollup/plugin-replace,它可以在构建时将import.meta.glob替换为实际的值。

首先,需要在项目中安装@rollup/plugin-replace插件:

npm install --save-dev @rollup/plugin-replace

然后,在项目的根目录下创建一个rollup.config.js文件,并添加以下内容:

import replace from '@rollup/plugin-replace'

export default {
  // ...
  plugins: [
    replace({
      'import.meta.glob': '__non_webpack_require__'
    })
  ]
}

接下来,需要调整router/index.js文件的代码,将import.meta.glob替换为__non_webpack_require__

import { createRouter, createWebHistory } from 'vue-router'

const routes = []
const router = createRouter({
  history: createWebHistory(),
  routes
})

// 自动导入views文件夹下的所有Vue文件
const modules = __non_webpack_require__.glob('../views/**/*.vue')
Object.keys(modules).forEach(key => {
  const name = key.match(/\.\/(.*)\.vue$/)[1]
  routes.push({
    path: '/' + name.toLowerCase(),
    component: modules[key].default
  })
})

export default router

通过以上步骤,就可以在Vue 3中根据views文件夹里的Vue文件自动生成路由了

vue3 怎么根据views文件夹里的vue文件来自动生成路由?代码怎么实现?需要npm install 才能生成路由吗?在Vue3中可以使用Vue Router来实现根据views文件夹里的Vue文件自动生成路由。不需要额外安装插件Vue Router是Vue官方提供的路由库。首先需要在项目中安装Vue Router:npm install vue-routernext然后在项目的src目录下创

原文地址: http://www.cveoy.top/t/topic/isoz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录