require.context (Webpack)

const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)

import.meta.glob(vite)

在 Vite 中,你可以使用 import.meta.glob 函数来批量导入模块。它允许你指定一个文件路径的模式,并返回一个对象,其中键是文件路径,值是对应的模块。下面是示例代码:

// 批量导入所有.vue文件的模块
const modules = import.meta.globEager('./src/components/**/*.vue');
 
// 打印导入的模块
for (const key in modules) {
  if (modules.hasOwnProperty(key)) {
    const module = modules[key];
    console.log(module.name);
  }
}

请注意,globEager 在 Vite 的开发模式下使用可能会遇到性能问题,因为它会同步地导入所有的模块。如果你需要在生产环境中使用,或者想要更好的性能,你可以考虑使用 glob 函数,并结合适当的 async/await 逻辑来异步地导入模块。

nodejs

const fs = require('fs');
const path = require('path');
 
fs.readdirSync(__dirname).forEach(file => {
  if (file.endsWith('.js')) {
    require(path.join(__dirname, file));
  }
});

扩展阅读