站長資訊網
        最全最豐富的資訊網站

        聊聊關于webpack4是怎么處理css的

        前言:webpack 處理css是一個很基礎的話題。只是在webpack4 里,用autoprefixer解決css 的瀏覽器的兼容性時,會有個和以前不一樣的坑。所以就再詳細的寫一下這方面的知識。

        一,所需依賴

        • style-loader:將css 文件注入到html 頁面的style 標簽中。參考:https://www.webpackjs.com/loa…
        • css-loader:解析import 到js 里的css 文件。參考: https://www.webpackjs.com/loa…
        • less-loader:解析css 預處理語言,若使用的是其它的預處理語言,就要使用與其對應的loader。參考: https://www.html.cn/doc/webpa…
        • postcss-loader:對我們在項目中寫完的css 進行后期處理:

          • 把 CSS 解析成 JavaScript 可以操作的抽象語法樹結構(Abstract Syntax Tree,AST),
          • 調用插件來處理 AST 并得到結果。
        • autoprefixer:postcss-loader的插件,為css 加前綴,以適應不同瀏覽器。

        注:postcss-loader的作用就像影視后期一樣,把所有的原始文件合在一起,然后用插件加上特效,最后輸出成品。autoprefixer 插件就對postcss-loader 解析出的AST 進行后期加工。

        二,安裝依賴

        npm install --save-dev less-loader less style-loader css-loader postcss-loader autoprefixer

        三,建立less 測試文件 style.less

        #world{   display: flex; }

        四,在主文件index.js 中導入style.less

        import './style.less';

        五,webpack配置文件 webpack.config.js

        module: {     rules: [         {             test: /.less$/,             use: [                 'style-loader',                 {loader: 'css-loader', options: { importLoaders: 1 } },                 'less-loader',                 'postcss-loader'             ]         },     ] }

        css-loader的 importLoaders: 1,是一個很重要的設置。這會讓所有解析完成的css 只注入到一個style 標簽里。若無此配置,每個新的css 文件在注入時,都會建立一個新的style 標簽,有的瀏覽器里對style 標簽是有數量限制的。

        六,建立postcss 配置文件 postcss.config.js,在其中引入autoprefixer 插件

        module.exports = {     plugins: [         require('autoprefixer')     ] }

        七,在package.json 中添加瀏覽器列表browserslist。這就是前言里說的坑,沒有的話autoprefixer 就不起作用

        {  "scripts": {   "build": "webpack",   "dev": "webpack-dev-server  --mode development"  },  "browserslist": [   "defaults",   "not ie < 11",   "last 2 versions",   "> 1%",   "iOS 7",   "last 3 iOS versions"  ] }

        八,運行命令

        npm run build

        九,css解析成功,效果如下:

        #world {   display: -webkit-box;   display: -webkit-flex;   display: -ms-flexbox;   display: flex; }

        推薦學習:《css視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲国产精品成人| 国产夫妇精品自在线| 久久99精品国产麻豆| A级毛片无码久久精品免费| 国产精品免费大片| 亚洲精品午夜无码电影网| 国产伦精品一区二区三区视频金莲 | 日本VA欧美VA欧美VA精品| 精品a在线观看| 午夜精品福利视频| 精品国产三级a在线观看| 正在播放酒店精品少妇约| 久久99精品久久久久久齐齐 | 亚洲精品无码成人片在线观看| 国产精品青草久久久久福利99| 杨幂国产精品福利在线观看| 99久久精品国产免看国产一区| 精品欧洲av无码一区二区| 亚洲国产一二三精品无码| 日韩精品毛片| 欧美精品综合视频一区二区| 精品乱码久久久久久夜夜嗨| 国产精品美女久久久网AV| 亚洲第一精品在线视频| 久久精品国产99国产精偷| 国内精品人妻无码久久久影院 | 亚洲欧美精品伊人久久| 国产一精品一av一免费爽爽| 91精品在线看| 国产精品久久久福利| 国产精品久久久久9999高清| 黑人精品videos亚洲人| 国产精品一级香蕉一区| 99精品在线观看| 国产精品影音先锋| 久久99国产精品二区不卡| 国产一区二区三区久久精品| 欧美精品888| 国产精品成人免费观看| 精品伦精品一区二区三区视频 | 色久综合网精品一区二区|