如何在javascript和sass之间共享变量
在编程开发中,变量共享一直是程序员们所热爱的东西,因为我们都追求 极简主义,代码的高可维护性。这篇短文将介绍一种在 javascript
和 sass
之间进行变量共享的实现方式。
前言
我们都知道,同语言之间实现变量共享是很简单的,因为他们都有自己的模块机制。
javascript
中有 ES Modules
1 | // a.js |
1 | // b.js |
sass
中有 @import
1 | // variables.scss |
1 | // main.scss |
但,当我们想要在 b.js
中使用 variables.scss
中的变量时,看起来好像没那么简单。
幸运的是,当有了 webpack 和 CSS Modules 后,一切都变得简单起来了。接下来,开始讲解如何去实现它。
准备
首先确保你的项目是工程化的,基于 webpack
构建的。你可以自行搭建,也可以使用现有的脚手架,比如 @vue/cli
、create-react-app
、create-nuxt-app
等。
然后确保安装了 sass
的编译器和对应 loader
。你可以使用以下的任一种方式安装。
1 | $ npm i node-sass sass-loader -D |
或
1 | # 使用 dart 作为 sass 编译器依赖 |
使用
为了方便,我们直接使用 @vue/cli
进行构建。
现在,我们在项目中新建一个 variables.scss
文件,来定义样式变量。得益于 CSS Modules
,我们可以在 variables.scss
中使用 :export
指令来向 javascript
导出变量,这就像 es6
中的 export
关键字一样。
1 | // @/styles/variables.scss |
如上所示,该 scss
文件向外导出了一个 javascript
对象。类似于这样。
1 | export default { |
接着,我们就可以这样使用它。
1 | <template> |
打开浏览器,你会看到有着 skyblue
字体颜色的 CSS Modules 文本。Yep!
好了,这就是这篇短文的全部内容了,玩的开心!