Ant Design【Ant Design Vue】 通过Vue-cli 3 配置主题不生效或报错

本文介绍如何在Vue CLI3项目中配置自定义主题颜色及解决因less-loader版本过高导致的兼容性问题。

vue-cli 3+ 配置

// vue.config.js 文件
module.exports = {
  css: {
    loaderOptions: {
      less: {
        lessOptions: {
          modifyVars: {
            'primary-color': '#1DA57A',  // 要重新定义的less变量【无@符】
            'link-color': '#1DA57A',
            'border-radius-base': '2px',
          },
          javascriptEnabled: true, // 不可省略必须为true否则不生效!
        },
      },
    },
  },
};

在mian中引入的是less文件!!!
在mian中引入的是less文件!!!
在mian中引入的是less文件!!!

import Antd from 'ant-design-vue'
import 'ant-design-vue/dist/antd.less'
Vue.use(Antd)

报错一

语法错误:this.getOptions is not a function

在这里插入图片描述

原因

less-loader 版本过高引起了【2021-7-25 默认安装less-loader 为 @10.0.1版本,运行报错】

报错二:

Syntax Error:

    position: absolute;
    top: 8px + @font-size-base * @line-height-base / 2 - @font-size-base / 2;
  ^
Operation on an invalid type
      Error in E:\myTest\mytest\node_modules\ant-design-vue\lib\alert\style\index.less (line 29, column 4)

在这里插入图片描述

原因

less 在第 7 版本改变了原有的除法运算,所以无法识别

解决

npm remove less-loader 【移除高版本less-laoder】

npm i less-loader@6 -D 【指定安装 less-loader 6 版本】

重启项目

在使用Ant Design Vue 3的组件库进行响应式设计时,`rem`适配可能会遇到失效的情况。`rem`单位通常用于移动端自适应,它是相对于根元素字体大小的相对单位。然而,如果Ant Design的CSS样式没有正确地处理媒体查询、者全局设置的初始字体大小(`html`元素的`font-size`)不合适,就可能导致`rem`计算出现问题。 以下是可能导致`rem`适配失效的一些原因: 1. **未设置全局字体大小**:你需要确保在项目中设置了合适的`html`元素的`font-size`,通常是基于设计稿的尺寸,比如100px,然后其它元素会基于这个基础来计算`rem`。 ```css html { font-size: 100px; /* 根据设计稿设定 */ } ``` 2. **Ant Design CSS重置问题**:Ant Design有自己的CSS reset,这可能会影响到`rem`的计算,需要确认是否覆盖了其内部的字体大小设置。 3. **媒体查询配置错误**:如果你使用了Vue的响应式工具(如`vue-cli-service build --mode xxx`),需确保`rem`在不同设备屏幕尺寸下的转换是正确的。 4. **复杂数组嵌套组件**:如果组件有复杂的层级结构,可能会导致某些地方的`rem`值无法正确应用,这时需要检查是否有影响组件渲染的CSS穿透问题。 5. **组件自身样式冲突**:某些组件内部可能有自己的默认字体大小,这可能与外部的`rem`设置冲突,可以尝试清除此类冲突。 修复上述问题后,你应该能保证Ant Design Vue 3组件库的`rem`适配正常工作。如果问题依然存在,建议查阅官方文档在社区提问,提供具体的代码片段以便于定位问题。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值