babel plugin that emulates vite's import.meta.glob import.meta.globEager functionality
npm install babel-plugin-transform-vite-meta-glob











> Please note: this plugin is intended to provide an approximation of some of Vite specific
> transformations when running the code in non-Vite environment, for example, running tests with a
> NodeJS based test runner.
>
> The functionality within these transformations should not be relied upon in production.
In
``js
const modules = import.meta.glob('./path/to/files/*/')
// eager
const eagerModules = import.meta.glob('./path/to/files/*/', { eager: true })
// deprecated eager
const deprecatedEagerModules = import.meta.globEager('./path/to/files/*/')
`
Out
> For the purposes of this example, assume there are 3 files, files1.js, files2.js andfile3.js
> at the path of ./path/to/files/ relative the files being transformed.
`js
const modules = {
'./path/to/files/file1.js': () => import('./path/to/files/file1.js'),
'./path/to/files/file2.js': () => import(('./path/to/files/file2.js'),
'./path/to/files/file3.js': () => import(('./path/to/files/file3.js')
}
// eager
import * as __glob__0_0 from './path/to/files/file1.js'
import * as __glob__0_1 from './path/to/files/file2.js'
import * as __glob__0_2 from './path/to/files/file3.js'
const eagerModules = {
'./path/to/files/file1.js': __glob__0_1,
'./path/to/files/file2.js': __glob__0_2,
'./path/to/files/file3.js': __glob__0_3
}
// deprecated eager
const deprecatedEagerModules = {
'./path/to/files/file1.js': require('./path/to/files/file1.js'),
'./path/to/files/file2.js': require('./path/to/files/file2.js'),
'./path/to/files/file3.js': require('./path/to/files/file3.js')
}
`
`sh`
npm install --save-dev babel-plugin-transform-vite-meta-glob
`json`
{
"plugins": ["babel-plugin-transform-vite-meta-glob"]
}
`sh`
babel --plugins babel-plugin-transform-vite-meta-glob script.js
`javascript``
require('@babel/core').transformSync('code', {
plugins: ['babel-plugin-transform-vite-meta-glob']
})