mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
199 lines
3.8 KiB
Markdown
199 lines
3.8 KiB
Markdown
# Vant Auto Import Resolver
|
|
|
|
English | [简体中文](./README.zh-CN.md)
|
|
|
|
`@vant/auto-import-resolver` is a resolver for [unplugin-vue-components](https://github.com/unplugin/unplugin-vue-components) that enables on-demand importing of Vant components.
|
|
|
|
### Features
|
|
|
|
- Supports `Vite`, `Webpack`, `Rspack`, `Vue CLI`, `Rollup`, `esbuild`, and more.
|
|
- Automatically imports the corresponding CSS styles for the components.
|
|
- Supports SSR (Server-Side Rendering).
|
|
|
|
### Installation
|
|
|
|
```shell
|
|
# via npm
|
|
npm i @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D
|
|
|
|
# via yarn
|
|
yarn add @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D
|
|
|
|
# via pnpm
|
|
pnpm add @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D
|
|
|
|
# via Bun
|
|
bun add @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Vite
|
|
|
|
```ts
|
|
// vite.config.ts
|
|
import AutoImport from 'unplugin-auto-import/vite';
|
|
import Components from 'unplugin-vue-components/vite';
|
|
import { VantResolver } from '@vant/auto-import-resolver';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
AutoImport({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
],
|
|
});
|
|
```
|
|
|
|
### Rollup
|
|
|
|
```ts
|
|
// rollup.config.js
|
|
import AutoImport from 'unplugin-auto-import/rollup';
|
|
import Components from 'unplugin-vue-components/rollup';
|
|
import { VantResolver } from '@vant/auto-import-resolver';
|
|
|
|
export default {
|
|
plugins: [
|
|
AutoImport({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
],
|
|
};
|
|
```
|
|
|
|
### Webpack
|
|
|
|
```ts
|
|
// webpack.config.js
|
|
import AutoImport from 'unplugin-auto-import/webpack';
|
|
import Components from 'unplugin-vue-components/webpack';
|
|
import { VantResolver } from '@vant/auto-import-resolver';
|
|
|
|
module.exports = {
|
|
plugins: [
|
|
AutoImport({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
],
|
|
};
|
|
```
|
|
|
|
### Rspack
|
|
|
|
```ts
|
|
// rspack.config.js
|
|
import AutoImport from 'unplugin-auto-import/rspack';
|
|
import Components from 'unplugin-vue-components/rspack';
|
|
import { VantResolver } from '@vant/auto-import-resolver';
|
|
|
|
module.exports = {
|
|
plugins: [
|
|
AutoImport({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
],
|
|
};
|
|
```
|
|
|
|
### Vue CLI
|
|
|
|
```ts
|
|
// vue.config.js
|
|
import AutoImport from 'unplugin-auto-import/webpack';
|
|
import Components from 'unplugin-vue-components/webpack';
|
|
import { VantResolver } from '@vant/auto-import-resolver';
|
|
|
|
module.exports = {
|
|
configureWebpack: {
|
|
plugins: [
|
|
AutoImport({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
],
|
|
},
|
|
};
|
|
```
|
|
|
|
### esbuild
|
|
|
|
```ts
|
|
// esbuild.config.js
|
|
import { build } from 'esbuild';
|
|
import AutoImport from 'unplugin-auto-import/esbuild';
|
|
import Components from 'unplugin-vue-components/esbuild';
|
|
import { VantResolver } from '@vant/auto-import-resolver';
|
|
|
|
build({
|
|
plugins: [
|
|
AutoImport({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()],
|
|
}),
|
|
],
|
|
});
|
|
```
|
|
|
|
## Options
|
|
|
|
### importStyle
|
|
|
|
Whether to automatically import the corresponding styles of the components.
|
|
|
|
- **Type:** `boolean`
|
|
- **Default:** `true`
|
|
- **Example:**
|
|
|
|
```ts
|
|
Components({
|
|
resolvers: [
|
|
VantResolver({
|
|
// Disable style import
|
|
importStyle: false,
|
|
}),
|
|
],
|
|
});
|
|
```
|
|
|
|
### module
|
|
|
|
Specifies the type of module to be imported.
|
|
|
|
- **Type:** `'esm' | 'cjs'`
|
|
- **Default:** `'esm'`
|
|
- **Example:**
|
|
|
|
```ts
|
|
Components({
|
|
resolvers: [
|
|
VantResolver({
|
|
module: 'cjs',
|
|
}),
|
|
],
|
|
});
|
|
```
|
|
|
|
### ssr
|
|
|
|
- **Type:** `boolean`
|
|
- **Default:** `undefined`
|
|
|
|
This option is deprecated. Please use the `module` option to set the module type.
|