<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        webpack項目輕松混用css module的方法

        來源:懂視網 責編:小采 時間:2020-11-27 22:12:57
        文檔

        webpack項目輕松混用css module的方法

        webpack項目輕松混用css module的方法:前言 本文講述css-loader開啟css模塊功能之后,如何與引用的npm包中樣式文件不產生沖突。 比如antd-mobilenpm包的引入。在不做特殊處理的前提下,樣式文件將會被轉譯成css module。 一、產生問題的原因 { test: /\.css$/, use: [ '
        推薦度:
        導讀webpack項目輕松混用css module的方法:前言 本文講述css-loader開啟css模塊功能之后,如何與引用的npm包中樣式文件不產生沖突。 比如antd-mobilenpm包的引入。在不做特殊處理的前提下,樣式文件將會被轉譯成css module。 一、產生問題的原因 { test: /\.css$/, use: [ '

        前言

        本文講述css-loader開啟css模塊功能之后,如何與引用的npm包中樣式文件不產生沖突。

        比如antd-mobilenpm包的引入。在不做特殊處理的前提下,樣式文件將會被轉譯成css module

        一、產生問題的原因

        { 
         test: /\.css$/,
         use: [
         'style-loader',
         {
         loader: 'css-loader',
         options: {
         modules: true,
         localIdentName: '[hash:base64:6]'
         }
         },
         'postcss-loader'
         ] 
        }

        以上代碼片段,摘自webpack配置的module.rule。

        可以看出wepack在編譯過程中,遇到.css結尾的文件,都會交由postcss-loader、css-loader和style-loader依次處理。

        因為css-loader開啟了css模塊功能,所以,所有經過處理的css文件,類名都將被改變。

        二、初步改進

        使用exclude和include進行區分

        1.node_module文件夾內的文件,避免被當前rule處理

        { 
         test: /\.css$/,
         use: [
         {
         loader: 'style-loader'
         },
         {
         loader: 'css-loader',
         options: {
         modules: true,
         localIdentName: '[hash:base64:6]'
         }
         },
         {
         loader: 'postcss-loader'
         }
         ],
         exclude:[path.resolve(__dirname, '..', 'node_modules')]
        }
        
        

        如上所示,將node_module文件夾內的文件,用exclude排除在外,不用當前rule進行處理。

        2.單獨處理node_module內的css文件

        { 
         test: /\.css$/,
         use: [
         {
         loader: 'style-loader'
         },
         {
         loader: 'css-loader'
         },
         {
         loader: 'postcss-loader'
         }
         ],
         include:[path.resolve(__dirname, '..', 'node_modules')]
        }
        
        

        三、升級版,支持css module模式和普通模式混用

        1.用文件名區分兩種模式

        1. *.global.css 普通模式
        2. *.css css module模式

        這里統一用 global 關鍵詞進行識別。

        2.用正則表達式匹配文件

        // css module
        { 
         test: new RegExp(`^(?!.*\\.global).*\\.css`),
         use: [
         {
         loader: 'style-loader'
         },
         {
         loader: 'css-loader',
         options: {
         modules: true,
         localIdentName: '[hash:base64:6]'
         }
         },
         {
         loader: 'postcss-loader'
         }
         ],
         exclude:[path.resolve(__dirname, '..', 'node_modules')]
        }
        
        // 普通模式
        { 
         test: new RegExp(`^(.*\\.global).*\\.css`),
         use: [
         {
         loader: 'style-loader'
         },
         {
         loader: 'css-loader',
         },
         {
         loader: 'postcss-loader'
         }
         ],
         exclude:[path.resolve(__dirname, '..', 'node_modules')]
        }
        
        

        四、其他問題

        less在使用css module時,對url的解析存在沖突,可以用resolve-url-loader進行解決,直接上代碼:

        test: /\.less/,
        use: [
         {
         loader: "style-loader"
         },
         {
         loader: "css-loader", 
         options: {
         sourceMap: true,
         importLoaders: 2
         }
         },
         {
         loader: "postcss-loader", 
         options: {
         sourceMap: true
         }
         },
         {
         loader: "resolve-url-loader", 
         options: {
         sourceMap: true
         }
         },
         {
         loader: "less-loader", 
         options: {
         sourceMap: true
         }
         }
        ]

        參考

        [1] [Updated README regarding relative filepaths issue #121]

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        webpack項目輕松混用css module的方法

        webpack項目輕松混用css module的方法:前言 本文講述css-loader開啟css模塊功能之后,如何與引用的npm包中樣式文件不產生沖突。 比如antd-mobilenpm包的引入。在不做特殊處理的前提下,樣式文件將會被轉譯成css module。 一、產生問題的原因 { test: /\.css$/, use: [ '
        推薦度:
        標簽: css module web項目
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 一级黄色片免费观看| 亚洲 暴爽 AV人人爽日日碰| 美女尿口扒开图片免费| 国产免费黄色大片| 亚洲熟女综合一区二区三区| 91视频国产免费| 亚洲伊人久久大香线蕉AV| 好大好硬好爽免费视频| 苍井空亚洲精品AA片在线播放 | 久久精品免费视频观看| 国产亚洲一区二区三区在线| 国产精品免费观看视频| 亚洲免费无码在线| 免费人成激情视频在线观看冫| 日韩亚洲产在线观看| 免费无码肉片在线观看| 亚洲不卡AV影片在线播放| 一区二区三区免费在线视频 | 国产三级在线观看免费| 亚洲人片在线观看天堂无码 | 国产精品亚洲片在线| 久久永久免费人妻精品| 亚洲天堂一区在线| 大学生高清一级毛片免费| 精品亚洲成a人在线观看| 在线A亚洲老鸭窝天堂| 色欲国产麻豆一精品一AV一免费| 亚洲精品网站在线观看你懂的| 久久久久国色AV免费看图片| 男女猛烈xx00免费视频试看| 亚洲成AV人片一区二区| 无码国产精品一区二区免费式影视| 亚洲欧美日韩久久精品| 久久99亚洲综合精品首页 | 亚洲无mate20pro麻豆| 国产免费观看网站| 久久国产乱子伦精品免费强| 亚洲天堂一区二区三区四区| 国产午夜影视大全免费观看 | 国产一级黄片儿免费看| 久久综合亚洲色HEZYO国产|