Skip to content

Latest commit

 

History

History

babel-plugin-transform-vite-meta-glob

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

babel-plugin-transform-vite-meta-glob

Build Status codecov version downloads MIT License

PRs Welcome Code of Conduct Discord

Watch on GitHub Star on GitHub Tweet

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.

Example

In

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 and file3.js at the path of ./path/to/files/ relative the files being transformed.

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')
}

Installation

npm install --save-dev babel-plugin-transform-vite-meta-glob

Usage

With a configuration file (Recommended)

{
  "plugins": ["babel-plugin-transform-vite-meta-glob"]
}

Via CLI

babel --plugins babel-plugin-transform-vite-meta-glob script.js

Via Node API

require('@babel/core').transformSync('code', {
  plugins: ['babel-plugin-transform-vite-meta-glob']
})