@jteppinette/babel-plugin-import-glob
v0.3.0
Published
Babel plugin to enable importing modules using glob patterns.
Downloads
469
Readme
Babel Plugin Import Glob
Babel plugin to enable importing modules using glob patterns.
Usage
Given the following file structure:
├── images
│ ├── cat.webp
│ └── dog.webp
└── videos
├── example-1.mp4
└── example-2.mp4Simple
import { cat, dog } from './images/*.webp'Alias
import { cat as c, dog as d } from './images/*.webp'Default
import videos from './videos/*.mp4'
console.log(videos['example-1'])Namespace
import * as videos from './videos/*.mp4'
console.log(videos['example-1'])Install
$ npm install @jteppinette/babel-plugin-import-globConfiguration
This plugin simply needs to be added to the Babel plugins array.
Here is a simple bare-bones babel configuration file which only supports this singular plugin.
.babelrc
{
"plugins": ["@jteppinette/babel-plugin-import-glob"]
}History
This repo was originally forked from and inspired by novemberborn/babel-plugin-import-glob. All license and git commits have been kept intact.
The origin repo mentioned above had stagnated for many years and was missing a features that I needed:
- You could not import the default export.
- Namespace import keys were transformed into valid identifiers instead of simply using their wildcard path names.
While I do not think we would ever merge the two, I would be open to the idea.
Development
Required Software
Getting Started
Setup
$ nvm install 16
$ direnv allow
$ pre-commit install
$ npm installTest
$ npm testPublishing
The publish process is automated by GitHub Actions. Once a release is created (at the end of these steps), the package will be published to the private GitHub NPM Registry.
Bump version, commit, and tag:
$ npm run version:<major|minor|patch>Commit the changes, tag the commit, and push the tags:
$ git push origin main --tagsConvert the tag to a release in GitHub.
$ open "https://github.com/jteppinette/babel-plugin-import-glob/releases/new?tag=<tag>"
