如何在vue中使用sass和引入全局sass文件

1 分钟阅读

最近的项目一直在用sass,而vue-cli中默认是不支持sass的,所以我们需要自己配置一下才可以在vue中使用,我们首先需要安装node-sasssass-loader,然后在webpack配置文件中中添加一个rules

javascript
{
        test: /\.scss$/,
        loaders: ['style', 'css', 'sass']
}

这样就可以在vue中使用sass来写css了.由于有一些公用的函数和变量之类的,所以我们还需要引用一个全局的sass,注意直接用import引入sass文件是没有用的 虽然样式起效 但是我们无法在所有的组件中使用到全局的变量,所以还需要一些其他的配置
这里我们去修改一下vue中build文件下的utils,增加如下两个函数

javascript
 function resolveResouce (name) {
    return path.resolve(__dirname, '../src/assets/scss/' + name)
  }// 解析一下文件路径 这里的路径可以自己设置
  function generateSassResourceLoader () {
    var loaders = [
      cssLoader,
      // 'postcss-loader',
      'sass-loader',
      {
        loader: 'sass-resources-loader',
        options: {
          // it need a absolute path
          resources: [resolveResouce('global.scss')]
        }
      }
    ]
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

并且将下面返回的对象中的scss部分改成 scss: generateSassResourceLoader()即可

相关文章