vite按需按需引入ant组件并实现自定义主题

Vite按需引入ant-design-vue 3.X

1.安装ant-design-vue插件

npm i --save ant-design-vue
npm i unplugin-vue-components -D

2.配置vite.config.ts

// vite.config.js
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  plugins: [
    ...
    Components({
      resolvers: [AntDesignVueResolver({ importStyle: 'less' })]
      // 如果需要自定义主题色,则需要配置importStyle: 'less',并安装less: npm install less --save-dev

    })
  ]
})

3.unplugin-vue-components插件无法处理非组件模块,如 message、Modal、notification、Icon等,这种组件需要手动加载:

//main.ts
import { createApp } from 'vue';
import App from './App';
const app = createApp(App);

import { Modal, message } from 'ant-design-vue';
import 'ant-design-vue/es/message/style/css';
import 'ant-design-vue/es/modal/style/css';

app.config.globalProperties.$Modal = Modal;
app.config.globalProperties.$message = message;


使用ant-design-vue的主题色

配置以下内容即可

// vite.config.js
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  plugins: [
    ...
    Components({
      resolvers: [AntDesignVueResolver({ importStyle: 'less' })]
      // 如果需要自定义主题色,则需要配置importStyle: 'less',并安装less: npm install less --save-dev

    })
  ],
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          'primary-color': '#1DA57A',
          'link-color': '#1DA57A',
          'border-radius-base': '2px',
        },
        javascriptEnabled: true,
      },
    },
  },
})

需要重启项目,但是会久一点点。。。

但这样的引入会每次都需要重启,效果很不好,因此有另一种方法取引入。

外部引入less文件修改主题色

新建一个style文件夹,在style文件夹下新建一个文件叫my-theme.less

写入以下代码:

@import "ant-design-vue/dist/antd.less"; // 引入官方提供的 less 样式入口文件

// 以下下内容用于覆盖上面定义的变量
@primary-color: #1da57a; // 自定义全局主色
@link-color: #535bf2; // 自定义链接色

修改vite.config.ts文件

plugins: [
    ...
    Components({
      resolvers: [AntDesignVueResolver({ 
	      importStyle: false, //
	  })]
    })
  ],

style文件夹下的my-theme.less文件在App.vue进行引入

<style lang="less">
@import "./style/my-theme.less";
//其他样式代码
</style>

然后重启项目即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Vite 中搭建组件库并实现引入,可以按照以下步骤进行: 1. 创建一个 Vue 3 项目并安装 Vite 2. 在项目中安装所的 UI 组件库,如 Element Plus、Ant Design Vue 等 3. 在项目根目录下创建一个名为 `vite.config.js` 的文件,并在其中配置按引入的插件,如 `style-import` 插件和 `babel-plugin-import` 插件 4. 在组件库中使用 `export` 关键字将组件导出,在要使用组件的项目中使用 `import` 关键字按引入组件 以下是一个示例的 `vite.config.js` 配置文件: ```js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import styleImport from 'vite-plugin-style-import' import babel from '@rollup/plugin-babel' export default defineConfig({ plugins: [ vue(), babel({ exclude: 'node_modules/**', extensions: ['.js', '.jsx', '.ts', '.tsx'], }), styleImport({ libs: [ { libraryName: 'ant-design-vue', esModule: true, resolveStyle: (name) => { return `ant-design-vue/es/${name}/style/css` }, }, { libraryName: 'element-plus', esModule: true, resolveStyle: (name) => { return `element-plus/lib/theme-chalk/${name}.css` }, }, ], }), ], }) ``` 在上述配置中,我们使用了 `style-import` 插件和 `babel-plugin-import` 插件来实现引入。其中,`style-import` 插件用于按引入组件库的样式,`babel-plugin-import` 插件用于按引入组件库的组件。 最后,我们在组件库中使用 `export` 关键字将组件导出,如下所示: ```vue <template> <div>{{ message }}</div> </template> <script> export default { name: 'MyComponent', props: { message: { type: String, required: true, }, }, } </script> ``` 在要使用组件的项目中,我们可以使用 `import` 关键字按引入组件,如下所示: ```vue <template> <div> <MyComponent message="Hello, world!" /> </div> </template> <script> import MyComponent from '@/components/MyComponent.vue' export default { name: 'App', components: { MyComponent, }, } </script> ``` 这样就可以实现Vite 中搭建组件库并实现引入了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值