1. 程式人生 > >(11/24) css進階:Less文件的打包和分離

(11/24) css進階:Less文件的打包和分離

install back 通過 pac into 1.5 名稱 fallback translate

寫在前面:在前面我們對css打包分離進行了描述。此節我們開始學習如何對less文件進行打包和分離。

Less 是一門 CSS 預處理語言,它擴展了 CSS 語言,增加了變量、Mixin、函數等特性,使 CSS 更易維護和擴展。Less 可以運行在 Node 或瀏覽器端。 Less知識學習

1.Less文件的打包處理

1.1 在src/index.html文件中新增一個標簽,樣式采用less編寫。

  <div id="less_part">less</div>

1.2 在css目錄下新建一個less文件,此處為black.less

@base :#000;
#less_part{
  width:300px;
  height:300px;
  background-color:@base;
}

@base是我們設置的變量名稱。

1.3 在src目錄下的entry.js中引入less文件

import less from ‘./css/black.less‘

1.4 安裝Less的服務

要使用Less,我們要首先安裝Less的服務,當然也是用npm來進行安裝或者cnpm來安裝。

npm install --save-dev less

還需要安裝Less-loader用來打包使用。

1.5 Less-loader安裝

npm  install --save-dev less-loader

1.6 配置loader

安裝好後,需要在webpack.config.js裏編寫loader配置,當然要想正確解析成css,還是需要style-loader和css-loader的幫助,但是這兩個loader前邊已經講過了,所以在這裏就不重復了,style-loader和css-loader學習

webpack.config.js:

 //針對.less的處理配置
            {
                test: /\.less$/,
                use: [{
                    loader: "style-loader" // creates style nodes from JS strings
                }, {
                    loader: "css-loader" // translates CSS into CommonJS
                },{
                    loader: 
"less-loader" // compiles Less to CSS }] },

1.7 打包+啟動服務

使用webpack命令進行打包,此時我們可以發現,相關的樣式被打包到了js當中。當然這是正確的,我們可以使用npm run server命令啟動服務,最終也能正常渲染頁面,我們的less樣式被正確引用。

技術分享圖片

渲染效果:

技術分享圖片

在實際開發中我們可能會把想相關的css文件與js文件分離開來,以便管理,此處我們把Lees文件進行分離。

2.分離Less文件

在上一節當中我們學習了extract-text-webpack-plugin這個插件,也是需要通過這個插件來實現less文件的分離。 插件的使用

更改上述webpack.config.js文件中針對less文件的配置(使用分離的配置),修改後的代碼為:

   {
                test: /\.less$/,
                use: extractTextPlugin.extract({
                    use: [{
                        loader: "css-loader"
                    }, {
                        loader: "less-loader"
                    }],
                    // use style-loader in development
                    fallback: "style-loader"
                })
            },

配置好後,使用webpack命令進行打包,此時less編寫的樣式被分離到了index.css文件裏(配置的css打包路徑)。

然後使用npm run server命令重新啟動服務,渲染效果與上面一致。

(11/24) css進階:Less文件的打包和分離