vue3+vite中使用import.meta.glob

前言:

        在vue2的时候,我们一般引入多个js或者其他文件,一般使用  require.context 来引入多个不同的文件,但是vite中是不支持 require的,他推出了一个类似的功能,就是用import.meta.glob来引入多个,单个的文件。

这里说说他们的对比和区别:

vue2 中使用  require 来引入多个不同的js文件

1、引入  modules 下的所有的js文件

const modulesFiles = require.context('./modules', true, /\.js$/)

2、循环,拿到每个js文件的名称和js返回的具体内容

modulesFiles.keys().reduce((modules, modulePath) => {
  // 名称:从 './app.js' 取到 'app'
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')

    // 内容,每个js中export default  返回的内容
  const value = modulesFiles(modulePath)

 
}, {})

vue3中使用 import.meta.glob

官方入口:点我

具体方法:

1、引入 modules下面的所有的js文件

const modulesFiles = import.meta.glob('./modules/*.js',{ eager: true }); // 异步方式

2、拿到具体文件名称和文件内容

let modules = {}
for (const [key, value] of Object.entries(modulesFiles)) {
    //名称  因为这里拿到的是  ./modules/app.js ,所以需要两层处理
  var moduleName = key.replace(/^\.\/(.*)\.\w+$/, '$1');
  const name = moduleName.split('/')[1]

  //具体的内容,都是每个js中返回值  value.default
  modules[name] = value.default
}

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
import.meta.glob是一个Vite特有的函数,用于从文件系统导入多个模块。它可以根据指定的文件路径模式匹配到符合条件的文件,并将它们作为模块导入到代码。 具体来说,import.meta.glob可以通过使用通配符(*)和文件路径模式来匹配文件。这些模式可以是相对路径或绝对路径,可以指定文件的后缀名或不指定后缀名。匹配到的文件默认是懒加载的,也就是说,它们会在需要使用时才会被动态导入,并在构建时分离为独立的代码块,类似于webpack的require.context()函数。 使用import.meta.glob函数可以灵活地遍历文件系统,根据文件名动态添加路由或执行其他操作。例如,可以使用import.meta.glob('./dir/*.js')来匹配指定文件夹下的所有以.js结尾的JavaScript文件,并将它们作为模块导入到代码。 需要注意的是,import.meta.glob函数在Vite特有,不是标准的JavaScript语法,只能在Vite项目使用。它可以帮助简化模块导入的操作,提高代码的可维护性和灵活性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [三、Vite 文件系统 import.meta.glob](https://blog.csdn.net/hbiao68/article/details/131577642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值