vue-cli構(gòu)建項(xiàng)目使用 less的方法
在vue-cli中構(gòu)建的項(xiàng)目是可以使用less的,但是查看package.json可以發(fā)現(xiàn),并沒(méi)有l(wèi)ess相關(guān)的插件,所以我們需要自行安裝。
第一步:安裝
npm install less less-loader --save-dev
即通過(guò)npm安裝less和less-loader,并記錄到devDependencies中,因?yàn)檫@是我們?cè)陂_(kāi)發(fā)中使用的而非在生產(chǎn)中使用,所以就不將之記錄在 dependencies 中。
第二步:在配置文件中配置
實(shí)際上如果我們通過(guò)vue-cli來(lái)構(gòu)建項(xiàng)目,這一步是可以省略的。
在webpack.dev.conf.js中,我們可以看到下面的代碼:
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
},
即webpack.dev.conf.js在合并了webpack.base.conf.js的基礎(chǔ)上又添加了dev環(huán)境下的module。
注意:在上面的代碼中,我們還可以使用loaders來(lái)代替rules, 他們的含義是一樣的。
在build文件夾下有一個(gè)utils.js文件,這個(gè)文件提供了一些通用的方法,供webpack.dev.conf.js和webpack.prod.conf.js使用。 其中styleLoaders方法如下:
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
var output = []
var loaders = exports.cssLoaders(options)
for (var extension in loaders) {
var loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
通過(guò)這個(gè)方法可以對(duì)大多數(shù)css預(yù)處理進(jìn)行了配置,具體配置在cssLoaders方法中。
第三步:在單組件.vue中使用
如下所示:
<template>
<div class="hello">
<h2>{{msg}}</h2>
<h2>Essential Links</h2>
<ul>
<li>Core Docs</li>
</ul>
<h2>Ecosystem</h2>
</div>
</template>
<script>
export default {
name: 'hello',
data: function () {
return {
msg: "Welcome to your vue.js app"
}
}
}
</script>
<style scoped lang="less">
.hello {
color: red;
font-size: 0.45rem;
h2 {
color: blue;
}
}
</style>
需要注意一下幾點(diǎn):
1.已經(jīng)在webpack中配置了,所以這里不需要引入任何less文件。
2.在style中聲明lang="less"。 注意: scoped的作用僅僅是限定css的作用域,防止變量污染。
3.這樣就可以根據(jù)less的語(yǔ)法使用了。
補(bǔ)充:通過(guò)下面的代碼就不難理解問(wèn)什么scoped可以隔離作用域了。 即給不同組件的所有html添加一個(gè)屬性,然后在css中使用屬性選擇器來(lái)防止作用域的污染,實(shí)在聰明?。?!

把scoped去掉之后,我們就可以發(fā)現(xiàn)已經(jīng)沒(méi)有額外的屬性了:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
前端架構(gòu)vue動(dòng)態(tài)組件使用基礎(chǔ)教程
這篇文章主要為大家介紹了前端架構(gòu)vue動(dòng)態(tài)組件使用的基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-02-02
詳解基于webpack和vue.js搭建開(kāi)發(fā)環(huán)境
本篇文章主要介紹了詳解基于webpack和vue.js搭建開(kāi)發(fā)環(huán)境 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
vue 雙向數(shù)據(jù)綁定的實(shí)現(xiàn)學(xué)習(xí)之監(jiān)聽(tīng)器的實(shí)現(xiàn)方法
這篇文章主要介紹了vue 雙向數(shù)據(jù)綁定的實(shí)現(xiàn)學(xué)習(xí)之監(jiān)聽(tīng)器的實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
vue中使用loadsh的debounce防抖函數(shù)問(wèn)題
這篇文章主要介紹了vue中使用loadsh的debounce防抖函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
使用element-ui table expand展開(kāi)行實(shí)現(xiàn)手風(fēng)琴效果
這篇文章主要介紹了使用element-ui table expand展開(kāi)行實(shí)現(xiàn)手風(fēng)琴效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
vue函數(shù)input輸入值請(qǐng)求時(shí)延遲1.5秒請(qǐng)求問(wèn)題
這篇文章主要介紹了vue函數(shù)input輸入值請(qǐng)求時(shí)延遲1.5秒請(qǐng)求問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Vue之監(jiān)聽(tīng)數(shù)據(jù)的原理詳解
這篇文章主要為大家介紹了Vue之監(jiān)聽(tīng)數(shù)據(jù)的原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>2021-11-11
vue2 el-table行懸停時(shí)彈出提示信息el-popover的實(shí)現(xiàn)
本文主要介紹了vue2 el-table行懸停時(shí)彈出提示信息el-popover的實(shí)現(xiàn),用到了cell-mouse-enter、cell-mouse-leave兩個(gè)事件,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
vue中如何實(shí)時(shí)監(jiān)聽(tīng)本地存儲(chǔ)
這篇文章主要介紹了vue中如何實(shí)時(shí)監(jiān)聽(tīng)本地存儲(chǔ),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04

