使用sass-resources-loader和vue-cli v3.x

时间:2018-03-03 15:51:03

标签: webpack vue.js vue-cli

如何使用sass-resources-loader和vue-cli@3.x添加全局scss变量和mixin。

3 个答案:

答案 0 :(得分:8)

正如您在the docs中看到的,最简单的方法是使用loaderOptions作为sass预处理器。不需要任何额外的依赖:

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        data: `
          @import "@/scss/_variables.scss";
          @import "@/scss/_mixins.scss";
        `
      }
    }
  }
};

答案 1 :(得分:4)

vue-cli@3.x使用webpack-chain来管理其webpack配置。将sass-resources-loader添加到预定义的webpack配置中。将以下内容添加到vue.config.js

<强> vue.config.js

const path = require('path')

module.exports = {
  lintOnSave: false,
  chainWebpack: (config) => {
    config
      .module
      .rule('vue')
      .use('vue-loader')
      .tap((options) => {
        options.loaders.scss = options.loaders.scss.concat({
          loader: 'sass-resources-loader',
          options: {
            resources: path.resolve('./src/scss/_variables.scss'),
          },
        })
        return options
      })

    config
      .module
      .rule('scss')
      .use('sass-resources-loader')
      .loader('sass-resources-loader')
      .options({
        resources: path.resolve('./src/scss/_variables.scss'),
      })
  },
}

希望这有帮助!

答案 2 :(得分:0)

css: {
    loaderOptions: {
        stylus: {
            loader: 'stylus-resources-loader',
            import: [path.resolve(__dirname, 'src/styles/imports.styl')]
        }
    }
}