vue3+view-ui-plus+vite+less 实现自定义iview样式

首先是结论:

"less": "^2.7.3",

"less-loader": "^4.1.0",

vite.config.js

javascript 复制代码
resolve: {
      alias: {
        // 设置路径
        '~': path.resolve(__dirname, './'),
        // 设置别名
        '@': path.resolve(__dirname, './src')
      },
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
    },

'~': path.resolve(__dirname, './'),

自定义文件 \src\assets\scss\view-design.less

javascript 复制代码
@import '~/node_modules/view-ui-plus/src/styles/index.less';

// Here are the variables to cover, such as:
@primary-color: #0066FE;
@link-hover-color:#4C94FF;
@text-color: #303133;

@import '~/node_modules/view-ui-plus/src/styles/index.less';

如果没代理 ~ 就是./

@import './node_modules/view-ui-plus/src/styles/index.less';

main.js 中引入

javascript 复制代码
import './assets/scss/view-design.less'

分享解决过程

如果按照官网的会报错

@import '~view-ui-plus/src/styles/index.less';

vite Internal server error: less '~view-ui-plus/src/styles/index.less' wasn't found. Tried

暂时没找到什么原因,网上百度的方法全试了,包括以下全没用

1️⃣ 改less版本

2️⃣

3️⃣

javascript 复制代码
 css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          hack: 'true; @import "@/assets/less.less"'
        },
        javascriptEnabled: true
      }
    }
  }

最后我终于找到一篇文章让把

@import '~iview/src/styles/index.less';

改为

@import '~view-design/dist/styles/iview.css';

这个改了也没用,但是给我启发了,我改成

@import '~/node_modules/view-ui-plus/src/styles/index.less';

终于正常啦!

相关推荐
cyadyx38 分钟前
Vite 比 Webpack 构建效率更高
前端·webpack·node.js·vite
mCell2 小时前
AI 时代 SVG 画图的潜力
前端·agent·svg
我命由我123458 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
Hopebearer_9 小时前
页面突然只剩 DOM?一次静态资源版本错配排查
前端·部署
东风破_9 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
java1234_小锋11 小时前
Vue3专题 - 组件基础
vue.js·vite
圣殿骑士-Khtangc11 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
glustful11 小时前
企业内部审计项目管理 系统开源(springboot+vue3)
vue3·springboot
BigTopOne12 小时前
【ijkplayer】 硬解码流程
前端
kyriewen12 小时前
DeepSeek Harness开源第一天我就上手了——和Claude Code的差距比想象中大
前端·ai编程·deepseek