Vue引入sass并配置全局變量的方法
引入sass
首先使用官方提供的腳手架vue-cli進(jìn)行搭建框架,這里就不做說明了,查閱官網(wǎng)即可。
等安裝完所有依賴后,安裝sass的依賴包:
npm install --save-dev sass-loader //sass-loader依賴于node-sass npm install --save-dev node-sass
然后在build文件夾下的webpack.base.conf.js的rules里面添加配置:
{
test: /\.sass$/,
loaders: ['style', 'css', 'sass']
}
然后添加csslang屬性。注意,這里是scss,而且css文件的后綴也是scss:
<style lang="scss"></style>
最后需要重新編譯一下項(xiàng)目,否則沒有效果。
$ npm run dev
現(xiàn)在就可以隨意的使用sass了,這時(shí)候會發(fā)現(xiàn)如果我想定義幾個(gè)變量進(jìn)行全局使用,好像只能在頁面中通過@import來引入,這顯然不夠優(yōu)雅,可以這樣解決。
配置sass全局變量
有一個(gè)babel插件可以完美的解決這個(gè)問題:sass-resources-loader可以訪問sass資源任何一個(gè)需要訪問的sass模塊。所以,可以使用共享變量和混合所有SASS樣式,而不去每個(gè)文件都引用。
首先進(jìn)行插件安裝:
npm install --save-dev sass-resources-loader
然后在 build 文件夾下找到 util.js 修改sass編譯器loader的配置,直接把下面的代碼復(fù)制進(jìn)去即可:
// 全局文件引入 當(dāng)然只想編譯一個(gè)文件的話可以省去這個(gè)函數(shù)
function resolveResource(name) {
return path.resolve(__dirname, '../src/style/' + name);
}
function generateSassResourceLoader() {
var loaders = [
cssLoader,
'sass-loader',
{
loader: 'sass-resources-loader',
options: {
// 多個(gè)文件時(shí)用數(shù)組的形式傳入,單個(gè)文件時(shí)可以直接使用 path.resolve(__dirname, '../static/style/common.scss'
resources: [resolveResource('theme.scss')]
}
}
];
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
將默認(rèn)的sass配置改為 generateSassResourceLoader()。
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
// vue-cli默認(rèn)sass配置
// sass: generateLoaders('sass', { indentedSyntax: true }),
// scss: generateLoaders('sass'),
// 新引入的sass-resources-loader
sass: generateSassResourceLoader(),
scss: generateSassResourceLoader(),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
改完配置后重啟服務(wù)就可以在theme.scss里定義全局變量并在頁面中引用了。
需要注意的是,scss里的變量是$開頭,而less里的變量是@開頭。比如我想定義一個(gè)項(xiàng)目的主色調(diào)變量,我可以在theme.scss里這樣定義:
$c-primary: #fd7a00; $theme-blue: #3296fa; $theme-red: #da3838;
引用變量的時(shí)候直接引用變量名即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談vue.js導(dǎo)入css庫(elementUi)的方法
下面小編就為大家分享一篇淺談vue.js導(dǎo)入css庫(elementUi)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
vue項(xiàng)目中企業(yè)微信使用js-sdk時(shí)config和agentConfig配置方式詳解
這篇文章主要介紹了vue項(xiàng)目中企業(yè)微信使用js-sdk時(shí)config和agentConfig配置,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Vue項(xiàng)目通過network的ip地址訪問注意事項(xiàng)及說明
這篇文章主要介紹了Vue項(xiàng)目通過network的ip地址訪問注意事項(xiàng)及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
關(guān)于vue中計(jì)算屬性computed的詳細(xì)講解
computed是vue的配置選項(xiàng),它的值是一個(gè)對象,其中可定義多個(gè)計(jì)算屬性,每個(gè)計(jì)算屬性就是一個(gè)函數(shù),下面這篇文章主要給大家介紹了關(guān)于vue中計(jì)算屬性computed的詳細(xì)講解,需要的朋友可以參考下2022-07-07
解決vue3項(xiàng)目打包發(fā)布到服務(wù)器后訪問頁面顯示空白問題
這篇文章主要介紹了解決vue3項(xiàng)目打包發(fā)布到服務(wù)器后訪問頁面顯示空白問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03

