vue+vue-cli3项目中引入less变量

发现问题的经过

	最近在做自己练手的vue项目,从项目初始化到项目配置,当我想要在项目中使用less变量时,遇到了问题:
  1. 初始化导致后面的问题
    在我使用@vue/cli初始化我的项目时,不知道什么问题,一直选择不了CSS Pre-processors这一项,也就没办法预先设置关于css的预处理器,只能选择到后面开发时再安装相应的配置项。

  2. 问题发生主要经过
    我想在项目中使用less语言,不可避免需要先运行npm install less less-loader -D在项目中安装less。后面在定项目主题色时想着之后项目可以需要根据需求调整,如果一个一个替换,感觉很麻烦,于是想着如果可以用一个变量来定义这个主题色,那后面修改起来会很简单,只需要修改一个文件就好。于是想到了Less变量

  3. 按照less变量命名要求,我创建了theme.less文件,并在其中命名了相关变量。并在main.js中引入了这个文件,原以为就可以愉快的使用变量了,但是当我在login.vue中使用时,报错了。
    less变量命名变量命名
    使用时,直接使用变量名就可以了。如:background:@theme-bg-color
    此时报错@theme-bg-color is not defined.于是便百度去了。找到了正确使用的步骤

下载相应的插件并添加配置

  1. 要想在你的项目中使用less变量,首先需要在vue项目中安装可以编译less的组件;
    运行npm install less less-loader -D可以将less安装到项目中
  2. 运行npm i style-resources-loader vue-cli-plugin-style-resources-loader -D 安装相应的插件。
  3. 在vue.config.js的module.exports中添加配置项
pluginOptions: {
        'style-resources-loader': {
          preProcessor: 'less',
          patterns: [path.resolve(__dirname, "src/common/css/theme-color.less")] // 引入全局样式变量
        }
    }

然后运行npm run serve即可正常使用less变量了。

Vue3 引入 `less-loader` 是为了支持 Less (层叠样式表) 这种 CSS 预处理器。如果你想在项目使用 Less 文件,并将其转换为浏览器可以直接解析的 CSS,你需要在构建工具如 Webpack 的配置安装并配置 `less-loader`。 以下是基本步骤: 1. 安装依赖: 使用 npm 或 yarn 安装 `less` 和 `less-loader`: ```bash npm install --save-dev less less-loader # 或者 yarn add -D less less-loader ``` 2. 在 Webpack 配置文件(通常是 `webpack.config.js` 或其对应的模块),添加 Less 插件到 loader 链。对于 Vue CLI 3+ 可能还需要 `vue-cli-plugin-webpack-bundle-analyzer`(分析插件)的相应配置调整: ```javascript // 如果使用的是 Vue CLI 3.x module.exports = { chainWebpack(config) { config.module .rule('less') .test /\.less$/ // 检测.less文件 .use('style-resources-loader') // 加载 Less 核心变量 .loader('style-resources-loader') .options({ patterns: ['src/assets/styles/variables.less'], // 自定义核心变量文件路径 }) .use('less-loader') // 少量处理 .loader('less-loader'); } }; // 或者如果是手动创建的项目 module.exports = { module: { rules: [ { test: /\.less$/, use: [ 'style-loader', 'css-loader', // 先转成CSS 'less-loader', // 再转成Less ], }, ], }, }; ``` 3. 确保在你的组件引用 Less 文件时使用正确的语法(`.vue` 文件内): ```html <template> <div class="your-component"> <!-- ... --> </div> </template> <style lang="less" scoped> .your-component { /* Less 代码 */ } </style> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值