在vue-cli 3中, 给stylus、sass样式传入共享的全局变量

在开发中有时,我们定义了大量的基础样式变量,例如:

在vue-cli 3中, 给stylus、sass样式传入共享的全局变量

大量的vue单文件组件会用到这些变量,每个组件都引人一次又太麻烦。全局引入是个不错的方法,于是,在main.js 中引入variable.styl文件,但是你会发现,并不起作用。

在查阅了vue cli官方文档后发现,有官方支持的方法。

  • 1、给sass样式传入共享的全局变量

有的时候你想要向 webpack 的预处理器 loader 传递选项。你可以使用 vue.config.js 中的 css.loaderOptions 选项。比如你可以这样向所有 Sass 样式传入共享的全局变量:

// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      // 给 sass-loader 传递选项
      sass: {
        // @/ 是 src/ 的别名
        // 所以这里假设你有 `src/variables.scss` 这个文件
        data: `@import "~@/variables.scss";`
      }
    }
  }
}

  2、给stylus样式传入共享的全局变量

// vue.config.js 文件

module.exports = {
  css: {
    loaderOptions: {
      // 给 stylus-loader 传递选项
      stylus: {
        import: '~@/common/stylus/color.styl'
      }
    }
  }
}

  

上一篇:javascript – 我可以设置gulp livereload在所有文件编译后运行吗?


下一篇:sass与less的区别?Stylus又是啥?