• 预处理器的使用
    • 使用案例
      • 安装 sass-loader
      • 应用 lang 属性
  • Sass/SCSS 全局变量的使用
    • 使用案例
      • 定义你的全局变量
      • 直接向 node-sass 注入 globals.scss
      • 使用你的全局变量

    预处理器的使用

    vue-loaderwebpack 一起使用的好处之一是能够直接在你的 Vue 组件文件中预处理你的 HTML/CSS/JS,而无需其他工作。请查询 这里 相关的详细信息。

    使用案例

    假设我们需要使用 Sass/SCSS 来预处理我们的 CSS。首先,我们需要安装正确的 webpack 加载器来处理这种语法。

    安装 sass-loader

    1. npm install --save-dev sass-loader node-sass

    一旦安装了我们需要的加载器,一切就都差不多完成了。vue-loader 将神奇地做好其余的工作。现在我们可以轻松地将 lang="sass"lang="scss" 添加到我们的 Vue 组件文件中。注意,我们还安装了 node-sass,因为它是 sass-loader 的依赖包。

    应用 lang 属性

    所以…

    1. <style>
    2. body {
    3. /* CSS */
    4. }
    5. </style>

    … 现在变成了 …

    1. <style lang="scss">
    2. body {
    3. /* SCSS */
    4. }
    5. </style>

    相同的原理适用于任何其他预处理器。那么,也许你的 JS 需要 coffeescript?只需安装 coffeescript-loader,并将属性 lang=“coffeescript” 应用到你的 <script> 标签上。

    要获得该功能更高级的使用情况,请转到 vue-loader 的文档 了解更多信息。

    Sass/SCSS 全局变量的使用

    当使用 Sass/SCSS 作为你的 CSS 语法时,在整个 Vue 组件文件中使用 全局变量 与 混合嵌套 是非常有益的。以下是此方法的实现。

    使用案例

    此示例演示了如何将 globals.scss 应用于所有的 Vue 组件文件中。本文档假设你已经在开发环境中如上所述地设置了 sass-loader

    定义你的全局变量

    src/renderer/globals.scss

    1. $brand-primary: blue;
    2. $brand-accent: turquoise;

    直接向 node-sass 注入 globals.scss

    .electron-vue/webpack.renderer.config.js 里编辑 vue-loader 的配置

    1. loaders: {
    2. sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1&data=@import "./src/renderer/globals"',
    3. scss: 'vue-style-loader!css-loader!sass-loader?data=@import "./src/renderer/globals";'
    4. }

    使用你的全局变量

    SomeComponent.vue

    1. <style lang="scss">
    2. body { color: $brand-primary; }
    3. </style>