在寫(xiě)項(xiàng)目的過(guò)程中,如果用的是scss來(lái)編寫(xiě)樣式代碼,常常需要定義各種變量,例如主題色、主字號(hào)之類(lèi)的,因此我們會(huì)把這些變量寫(xiě)到一個(gè)單獨(dú)的_variable.scss文件內(nèi),但是每次都要在vue單文件內(nèi)引入這些變量未免太繁瑣了,所以有沒(méi)有辦法可以默認(rèn)把變量文件作為全局文件進(jìn)行引入呢?答案是肯定的,可以用下面的方法進(jìn)行配置,可以根據(jù)當(dāng)前使用的框架和環(huán)境來(lái)進(jìn)行方法的選擇。
一、使用vue-cli(即vue-cli2)腳手架時(shí)
1. 首先,需要安裝一個(gè)loader,sass-resources-loader
1
|
npm install sass-resources-loader --save-dev |
2. 找到build文件夾下的utils.js文件,在文件內(nèi)找到這段配置代碼
1
2
3
4
5
6
7
8
9
|
return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders( 'less' ), sass: generateLoaders( 'sass' , { indentedSyntax: true }), scss: generateLoaders( 'sass' ), stylus: generateLoaders( 'stylus' ), styl: generateLoaders( 'stylus' ) } |
3. 修改其中的scss項(xiàng),改為
1
2
3
4
5
6
|
scss: generateLoaders( 'sass' ).concat({ loader: 'sass-resources-loader' , options:{ resources:path.resolve(__dirname, '../src/styles/_variable.scss' ) } }) |
4. 重啟項(xiàng)目,即可在其他文件內(nèi)使用這些變量文件了
二、使用@vue/cli(即vue-cli3)腳手架時(shí)
1. 找到vue.config.js文件,如果沒(méi)有的話(huà),則自己在根目錄新建一個(gè)即可
2. 在文件內(nèi)編寫(xiě)如下代碼:
1
2
3
4
5
6
7
8
9
|
module.exports = { css: { loaderOptions: { sass: { data: `@import "@/styles/_variable.scss" ;` } } } } |
3. 重啟項(xiàng)目,即可使用
注意:如果編寫(xiě)完以上代碼,重啟項(xiàng)目后出現(xiàn)這個(gè)錯(cuò)誤:
1
|
Invalid options object. Sass Loader has been initialised using an options object that does not match the API schema. |
那么說(shuō)明,你安裝的sass-loader應(yīng)該是V8的版本,可以在package.json中查看是否確實(shí)如此,如果的確是v8版本以上,則需要配置不同的寫(xiě)法,因?yàn)樵赩8中已經(jīng)廢除了data這個(gè)配置項(xiàng),改為了prependData,具體可以在vue cli官網(wǎng)中看到此說(shuō)明?!緜魉烷T(mén)】
因此,我們需要將配置代碼修改成如下樣式:
1
2
3
4
5
6
7
|
css: { loaderOptions: { sass: { prependData: `@import "~@/styles/_variable.scss" ;` } } } |
好了,重啟一下項(xiàng)目,大功告成。
以上就是vue中配置scss全局變量的步驟的詳細(xì)內(nèi)容,更多關(guān)于vue配置scss全局變量的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!
原文鏈接:https://www.cnblogs.com/happymental/p/12358167.html