vue-cli構建項目使用 less


  在vue-cli中構建的項目是可以使用less的,但是查看package.json可以發現,並沒有less相關的插件,所以我們需要自行安裝。

第一步:安裝

npm install less less-loader --save-dev

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

 

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

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

 在webpack.dev.conf.js中,我們可以看到下面的代碼:

  module: {
    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
  },

 即webpack.dev.conf.js在合並了webpack.base.conf.js的基礎上又添加了dev環境下的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
}

  通過這個方法可以對大多數css預處理進行了配置,具體配置在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>

需要注意一下幾點:

  1. 已經在webpack中配置了,所以這里不需要引入任何less文件。
  2. 在style中聲明lang="less"。 注意: scoped的作用僅僅是限定css的作用域,防止變量污染。
  3. 這樣就可以根據less的語法使用了。

 

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

 

 

 

 

 把scoped去掉之后,我們就可以發現已經沒有額外的屬性了:

 

 

 

 

 

 

 

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM