vue項(xiàng)目中設(shè)置全局引入scss,使每個組件都可以使用變量

在Vue項(xiàng)目中使用scss,如果寫了一套完整的有變量的scss文件。那么就需要全局引入,這樣在每個組件中使用。

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

1: 安裝node-sass、sass-loader、style-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: 修改build中的utils.js(vue-cli2.0)

scss: generateLoaders('sass'),

修改成:

scss: generateLoaders('sass').concat(
  {
    loader: 'sass-resources-loader',
    options: {
      resources: path.resolve(__dirname, '../src/assets/main.scss') //這里寫自己的文件路徑
    }
  }
)

4: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引入,單獨(dú)在組件引入也可以。 在組件中的style標(biāo)簽添加lang="scss"。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容