vue cli3初始化构建我的项目时,自定义抉择应用less作为css预处理器之后,就会默认装置less、less-loader,并且间接能够在组件中失常应用嵌套构造书写css了。
然而,当咱们须要应用less变量时,比方上面的状况
1. 我新建了一个common.less文件,并在main.js中引入它:
2. common.less中任意定义一个变量,比方:
3. 将组件中任意色彩值,批改为 @pink(对应左侧绿色字体)
4. 这时编译报错变量未定义:Variable @pink is undefined
怎么样能力失常应用呢?
5. 装置 style-resources-loader
npm i style-resources-loader
6. 在vue.config.js(若没有该文件,在根目录下新建)中,减少上面的配置:
patterns传入你要加载的含less变量的文件地址(相对路径)。能够传字符串,也能够传数组
const vueConfig = { // 加上以下的配置 chainWebpack: (config) => { const oneOfsMap = config.module.rule("less").oneOfs.store; oneOfsMap.forEach(item => { item .use("style-resources-loader") .loader("style-resources-loader") .options({ // or an array : ["./path/to/vars.less", "./path/to/mixins.less"] 这里的门路不能应用@,否则会报错 patterns: "./src/assets/css/common.less" }) .end() }) } // 其余配置... } module.exports = vueConfig
7. 而后重启我的项目 npm run dev,发现能够失常应用了
less变量的状况,我个别用于全局定义几个罕用的色值,组件中拿变量应用,这样前期保护起来,只须要去批改定义的中央即可。还是很不便的~