vite 中使用 require.context()

5,568 阅读1分钟

webpack

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

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

  • 应用场景

    • 比如使用动态路由的时候 会按照路由的目录结构来创建路由
    • 那么可以使用该函数去取得所有的路由路径

vite

  • import.meta.globEager()
  • // webpack
    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
    const routeFiles = import.meta.globEager('@/router/main/**/*.ts')
    console.log(routeFiles)
    for (const path in routeFiles) {
      allRoutes.push(routeFiles[path].default)
    }
    

参考链接