可以在 main.js 全局引入,下面是使用方法。

1: 安装 node-sasssass-loaderstyle-loader

npm install node-sass --save-dev
npm install sass-loader --save-dev
npm install style-loader --save-dev

2: 安装 sass-resources-loader (如果不安装的话变量会报错)

npm install sass-resources-loader --save-dev

3:vue-cli4.0 配置方法

// vue.config.js
module.exports = {
  publicPath: './',
  outputDir: 'dist',
  assetsDir: 'static',
  indexPath: 'index.html',
  filenameHashing: true,
  lintOnSave: true,
  productionSourceMap: false,
  css: {
    loaderOptions: {}
  },
  chainWebpack: config => {
    const oneOfsMap = config.module.rule('scss').oneOfs.store
    oneOfsMap.forEach(item => {
      item
        .use('sass-resources-loader')
        .loader('sass-resources-loader')
        .options({
          // 要公用的 scss 的路径
          resources: './src/assets/scss/public.scss'
        })
        .end()
    })
  }
}

在 main.js 里面引入即可,

或者是不在 main.js 引入,单独在组件引入也可以,在组件中的 style 标签添加 lang="scss"。

4: vue-cli2.0 配置方法,修改 build 中的 utils.js

scss: generateLoaders('sass'),
修改成:
scss: generateLoaders('sass').concat(
  {
    loader: 'sass-resources-loader',
    options: {
      resources: path.resolve(__dirname, '../src/assets/main.scss') //这里写自己的文件路径
    }
  }
)