vite 中使用 require.context()

263 阅读1分钟

webpack

  • webpack 中是使用 require.context() 来查找文件内容的

  • 它允许您传入要搜索的目录、搜索子目录的标志以及匹配文件的正则表达式

  • 应用场景:

    • 比如使用动态路由的时候 会按照路由的目录结构来创建路由
    • 那么可以使用该函数去取得所有的路由路径
const routeFiles = require.context('@/router/main', true, /.ts/)
// 里面是所有的 ts 文件的路径 相对于 main 的
// .production/goods/goods.ts

routeFiles.keys().forEach((key: string) => {
  // 拼接出路由使用的路径
  const route = require('../router/main' + key.split('.')[1])
  allRoutes.push(route.default)
})

vite

  • import.meta.glob()
const routeFiles = import.meta.glob('@/router/main/**/*.ts')
console.log(routeFiles)
for (const path in routeFiles) {
  allRoutes.push(routeFiles[path].default)
}