less与sass的自动化导入

1)准备要用的变量和混入代码

  • 变量 src/assets/styles/variables.less
// 主题
@xtxColor:#27BA9B;
// 辅助
@helpColor:#E26237;
// 成功
@sucColor:#1DC779;
// 警告
@warnColor:#FFB302;
// 价格
@priceColor:#CF4444;
  • 混入 src/assets/styles/mixins.less
// 鼠标经过上移阴影动画
.hoverShadow () {
  transition: all .5s;
  &:hover {
    transform: translate3d(0,-3px,0);
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
  }
}

less混入就是,申明一段css代码(选择器包裹的代码)或者函数,在其他css选择器调用,可复用包裹的代码。

2)完成自动注入公用变量和混入

遇到问题: 每次使用公用的变量和mixin的时候需要单独引入到文件中。

less与sass的自动化导入_第1张图片

解决方法: 使用vuecli的style-resoures-loader插件来完成自动注入到每个less文件或者vue组件中style标签中。

  • 在当前项目下执行一下命令vue add style-resources-loader,添加一个vuecli的插件
  • 或是 npm i style-resources-loader
  • npm i vue-cli-plugin-style-resources-loader

less与sass的自动化导入_第2张图片

  • 安装完毕后会在vue.config.js中自动添加配置,如下:
module.exports = {
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      patterns: []
    }
  }
}
  • 把你需要注入的文件配置一下后,重启服务即可。
+const path = require('path')
module.exports = {
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      patterns: [
+        path.join(__dirname, './src/assets/styles/variables.less'),
+        path.join(__dirname, './src/assets/styles/mixins.less')
      ]
    }
  }
}

 或是:

const path = require('path');
module.exports = {
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      // 这三种 patterns 写法都是可以的,这里的路径不能使用 @ 符号
      // patterns: ["./src/assets/reset1.less", "./src/assets/reset2.less"]
      // patterns: "./src/assets/reset.less"
	  patterns: [
        path.resolve(__dirname, './src/assets/reset.less')//这里的路径不能使用 @ 符号,否则会报错
      ]
    }
  }
}

SASS自动导入配置:

插件要安装sass,sass-loader

配置好后就不用每个文件都引入了,直接用就行

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        // 全局引入变量和 mixin
        additionalData: `
          @import "@/assets/scss/variable.scss";
          @import "@/assets/scss/mixin.scss";
        `
      }
    }
  },
}

你可能感兴趣的:(less,自动化,前端)