webpack批量导入
- webpack中使用
require.context
实现自动导入
const files = require.context('./modules', false, /\.ts$/);
const modules = {};
files.keys().forEach((key) => {
if (key === './index.ts') { return; }
modules[key.replace(/(\.\/|\.ts)/g, '')] = files(key).default;
});
export default modules;
vite批量导入
- vite中使用
import.meta.glob
实现自动导入
const modules = import.meta.glob('./dir/*.js')
const modules = {
'./dir/foo.js': () => import('./dir/foo.js'),
'./dir/bar.js': () => import('./dir/bar.js')
}
for (const path in modules) {
modules[path]().then((mod) => {
console.log(path, mod)
})
}
const modules = import.meta.glob('./dir/*.js', { eager: true })
import * as __glob__0_0 from './dir/foo.js'
import * as __glob__0_1 from './dir/bar.js'
const modules = {
'./dir/foo.js': __glob__0_0,
'./dir/bar.js': __glob__0_1
}
const modules = import.meta.glob('./dir/*.js', { import: 'setup' })
const modules = {
'./dir/foo.js': () => import('./dir/foo.js').then((m) => m.setup),
'./dir/bar.js': () => import('./dir/bar.js').then((m) => m.setup)
}
const modules = import.meta.glob('./dir/*.js', { import: 'setup', eager: true })