溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue-cli構(gòu)建項目使用 less的方法

發(fā)布時間:2020-08-25 04:09:30 來源:腳本之家 閱讀:158 作者:Wayne-Zhu 欄目:web開發(fā)

在vue-cli中構(gòu)建的項目是可以使用less的,但是查看package.json可以發(fā)現(xiàn),并沒有l(wèi)ess相關(guān)的插件,所以我們需要自行安裝。

第一步:安裝

npm install less less-loader --save-dev 

即通過npm安裝less和less-loader,并記錄到devDependencies中,因為這是我們在開發(fā)中使用的而非在生產(chǎn)中使用,所以就不將之記錄在 dependencies 中。

第二步:在配置文件中配置

實際上如果我們通過vue-cli來構(gòu)建項目,這一步是可以省略的。

在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來代替rules, 他們的含義是一樣的。

在build文件夾下有一個utils.js文件,這個文件提供了一些通用的方法,供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
} 

通過這個方法可以對大多數(shù)css預(yù)處理進(jìn)行了配置,具體配置在cssLoaders方法中。

第三步:在單組件.vue中使用

如下所示:

<template>
 <div class="hello">
  <h3>{{msg}}</h3>
  <h3>Essential Links</h3>
  <ul>
   <li>Core Docs</li>
  </ul>
  <h3>Ecosystem</h3>
 </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;
  h3 {
   color: blue;
  }
 }
</style> 

需要注意一下幾點:

1.已經(jīng)在webpack中配置了,所以這里不需要引入任何less文件。

2.在style中聲明lang="less"。 注意: scoped的作用僅僅是限定css的作用域,防止變量污染。

3.這樣就可以根據(jù)less的語法使用了。

補充:通過下面的代碼就不難理解問什么scoped可以隔離作用域了。 即給不同組件的所有html添加一個屬性,然后在css中使用屬性選擇器來防止作用域的污染,實在聰明?。。?br />

vue-cli構(gòu)建項目使用 less的方法

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

vue-cli構(gòu)建項目使用 less的方法

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI