![cover](https://img-blog.csdnimg.cn/5d75f222448345bb95d38fdaa76f8bc3.png)
vue3+vite中使用import.meta.glob
vite中是不支持 require的,他推出了一个类似的功能,就是用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
}
更多推荐
所有评论(0)