日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(11/24) css进阶:Less文件的打包和分离

發(fā)布時間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (11/24) css进阶:Less文件的打包和分离 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(11/24) css進階:Less文件的打包和分離

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

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

1.Less文件的打包處理

1.1 在src/index.html文件中新增一個標(biāo)簽,樣式采用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是我們設(shè)置的變量名稱。

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

import less from './css/black.less'

1.4 安裝Less的服務(wù)

要使用Less,我們要首先安裝Less的服務(wù),當(dāng)然也是用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配置,當(dāng)然要想正確解析成css,還是需要style-loader和css-loader的幫助,但是這兩個loader前邊已經(jīng)講過了,所以在這里就不重復(fù)了,style-loader和css-loader學(xué)習(xí)

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 }]},

注意上面loader的順序,不要寫反了。

1.7 打包+啟動服務(wù)

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

?渲染效果:

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

2.分離Less文件

在上一節(jié)當(dāng)中我們學(xué)習(xí)了extract-text-webpack-plugin這個插件,也是需要通過這個插件來實現(xiàn)less文件的分離。 插件的使用

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

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

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

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

?

部分源碼:

webpack.config.js:

const path = require('path'); const uglify = require('uglifyjs-webpack-plugin'); const htmlPlugin= require('html-webpack-plugin'); const extractTextPlugin = require("extract-text-webpack-plugin"); var website ={publicPath:"http://localhost:1818/" } module.exports={//入口文件的配置項 entry:{entry:'./src/entry.js',//這里我們又引入了一個入口文件entry2:'./src/entry2.js',},//出口文件的配置項 output:{//輸出的路徑,用了Node語法path:path.resolve(__dirname,'dist'),//輸出的文件名稱filename:'[name].js',publicPath: website.publicPath},//模塊:例如解讀CSS,圖片如何轉(zhuǎn)換,壓縮 module:{rules: [//針對.css的處理配置 {test: /\.css$/,use: extractTextPlugin.extract({fallback: "style-loader",use: "css-loader"})},//針對.less的處理配置 {test: /\.less$/,use: extractTextPlugin.extract({use: [{loader: "css-loader"}, {loader: "less-loader"}],// use style-loader in developmentfallback: "style-loader"//extract默認(rèn)行為先使用css-loader編譯css,如果一切順利的話,結(jié)束之后把css導(dǎo)出到規(guī)定的文件去。但是如果編譯過程中出現(xiàn)了錯誤,則繼續(xù)使用vue-style-loader處理css })},{test:/\.(png|jpg|gif)/,use:[{loader:'url-loader',options:{limit:50,outputPath:'images/'//圖片打包到images下 }}]},{test: /\.(htm|html)$/i,use:[ 'html-withimg-loader']}]},//插件,用于生產(chǎn)模版和各項功能 plugins:[// new uglify(),new htmlPlugin({minify:{removeAttributeQuotes:true},hash:true,template:'./src/index.html'}),new extractTextPlugin("css/index.css")],//配置webpack開發(fā)服務(wù)功能 devServer:{contentBase:path.resolve(__dirname,'dist'), //絕對路徑host:'localhost',compress:true,port:1818} } View Code

src/css/black.less:

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

src/index.html:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>webpack</title> </head> <body> <div><div id="less_part">less</div><img src="images/wfbin.png"/></div> <div id="img"></div> <div id="title"></div> </body> </html> View Code

src/entry.js(入口文件):

import css from './css/index.css' import less from './css/black.less' document.getElementById('title').innerHTML='Hello Webpack'; View Code

?

posted on 2018-12-15 17:37 WFaceBoss 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/wfaceboss/p/10123909.html

總結(jié)

以上是生活随笔為你收集整理的(11/24) css进阶:Less文件的打包和分离的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。