Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Dunqing/vite-plugin-dynamic-import-module
A vite plugin to support variables in dynamic imports module in Vite
https://github.com/Dunqing/vite-plugin-dynamic-import-module
Last synced: 4 months ago
JSON representation
A vite plugin to support variables in dynamic imports module in Vite
- Host: GitHub
- URL: https://github.com/Dunqing/vite-plugin-dynamic-import-module
- Owner: Dunqing
- License: mit
- Created: 2022-04-18T09:56:47.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-08T02:36:44.000Z (over 2 years ago)
- Last Synced: 2024-04-26T13:47:12.396Z (10 months ago)
- Language: TypeScript
- Size: 288 KB
- Stars: 21
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vite-plugin-dynamic-import-module
[](https://npmjs.org/package/vite-plugin-dynamic-import-module)
A vite plugin to support variables in dynamic imports module in Vite
## Installation
```bash
pnpm add vite-plugin-dynamic-import-module -D
```## Usage
```typescript
import { defineConfig } from 'vite'
import importDynamicModule from 'vite-plugin-dynamic-import-module'export default defineConfig({
plugins: [importDynamicModule()],
})```
### Options
#### `include`
Type: `string` | `Array`
Default: `[]`Files to include in this plugin (default all).
#### `exclude`
Type: `string` | `Array`
Default: `[]`Files to exclude in this plugin (default none).
#### `extensions`
Type: `Array`
Default: `['js', 'cjs', 'ts', 'tsx', 'jsx', 'mjs', 'mts', 'mtsx']`Automatically add default extensions when your import path has no extensions
## How it works?
```typescript
// Allowed
import(`@ant-design/icons/${name}`)
import(`@ant-design/icons/${name}.js`)
import(`@ant-design/icons/${name}Outlined`)
import(`@ant-design/icons/${name}Outlined.js`)// Not allowed
// cannot find module
import(`@ant-design/${module}/${name}`)
```## Limitations
### module name does not allow use variables
```typescript
// module as @ant-design
import(`@ant-design/${module}${name}`)// module as @ant-design/icons/es/icons
import(`@ant-design/icons/es/icons/${name}`)
```## Examples
- [vite-ant-design-pro](https://github.com/Dunqing/vite-ant-design-pro)
## Thanks
- [@rollup/plugin-dynamic-import-vars](https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars)
[LICENSE (MIT)](/LICENSE)