vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue使用import.meta.glob动态导入多个模块

vue使用import.meta.glob动态导入多个模块方式

作者:吃代码长大的前端

文章介绍了Vite提供的`import.meta.glob`功能,用于动态导入多个模块,它通过glob模式匹配文件,返回一个对象,键为文件路径,值为返回Promise的动态导入函数,支持eager模式直接导入和as选项指定导入方式,如原始字符串或文件URL,适用于Vite或Rollup项目

import.meta.glob 是 Vite 提供的一个功能,用于在构建时动态导入多个模块。

它通过 glob 模式匹配文件,返回一个对象,键为文件路径,值为返回 Promise 的动态导入函数。

语法与参数

const modules = import.meta.glob(globPattern, options);

字符串或字符串数组,支持 glob 模式(如 './modules/*.js')。

options(可选):

使用示例

动态导入文件

匹配 src/features 下所有 .js 文件,按需加载:

const features = import.meta.glob('./src/features/*.js');  
for (const path in features) {  
  features[path]().then((module) => {  
    console.log(module.default);  
  });  
}  

直接导入(eager 模式)

静态加载所有匹配模块:

const modules = import.meta.glob('./lib/*.js', { eager: true });  
console.log(modules['./lib/utils.js'].default);  

导入为原始内容

获取文件原始字符串或 URL:

const rawFiles = import.meta.glob('./assets/*.txt', { as: 'raw' });  
const fileUrls = import.meta.glob('./images/*.png', { as: 'url' });  

注意事项

与import.meta.globEager的区别

Vite 4 已弃用 globEager,推荐使用 { eager: true } 选项替代。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文