亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在webpack項目中實現css與module的混用

發布時間:2021-03-11 16:28:54 來源:億速云 閱讀:275 作者:Leah 欄目:web開發

這篇文章給大家介紹怎么在webpack項目中實現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
    }
  }
]

關于怎么在webpack項目中實現css與module的混用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴南区| 潜山县| 筠连县| 三河市| 布尔津县| 巨野县| 西贡区| 阳山县| 贡嘎县| 舟曲县| 马公市| 衡山县| 十堰市| 班戈县| 中阳县| 灌云县| 井冈山市| 抚州市| 扎兰屯市| 莫力| 云南省| 隆昌县| 衡南县| 浦东新区| 蚌埠市| 闵行区| 靖边县| 德庆县| 竹溪县| 巨鹿县| 含山县| 唐海县| 迁安市| 嘉鱼县| 盐边县| 内丘县| 济阳县| 郁南县| 乐安县| 湖南省| 青川县|