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

        聊聊關于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精品在线免费| 麻豆精品久久久一区二区| 亚洲精品无码久久久久久| 精品国产一区二区三区在线观看 | 国产精品国产精品国产专区不卡| 亚洲欧美国产精品专区久久| 精品久久久久久久中文字幕| 久久久九九有精品国产| 55夜色66夜色国产精品视频| 日韩欧精品无码视频无删节| 亚洲情侣偷拍精品| 日韩在线精品一二三区| 久久久久久国产精品免费免费| 国产成人精品综合在线观看| 亚洲永久永久永久永久永久精品| 久久99国产精品99久久| 国产精品精品自在线拍| 国产精品原创巨作av女教师| 欧美精品v欧洲精品| 亚洲精品夜夜夜妓女网| 亚洲精品国产精品乱码不卞| 青青热久久国产久精品| 免费人成在线观看欧美精品| 欧美精品成人3d在线| 蜜臀精品无码AV在线播放| 日韩精品一区二三区中文| 免费精品视频在线| 四虎国产精品成人| 亚洲国产精品第一区二区三区| 久久精品国产99久久香蕉| 黑巨人与欧美精品一区| 久久久这里有精品中文字幕| 日韩精品在线播放| 夜夜精品无码一区二区三区| 最新精品露脸国产在线 | 亚洲国产精品自在在线观看| 国产成人亚洲精品| 国产香蕉精品视频在| 久久久久国产精品| 99热日韩这里只有精品|