webpack混用css module的方法

这篇文章主要介绍了webpack项目轻松混用css module的方法,内容挺不错的,现在分享给大家,也给大家做个参考。

前言

本文讲述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.用文件名区分两种模式

*.global.css 普通模式

*.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    }  }]

登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

webpack分离css并单独打包的方法

以上就是webpack混用css module的方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2897167.html

(0)
上一篇 2025年3月10日 23:21:21
下一篇 2025年2月23日 02:04:01

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css中border属性之制作网页虚线

    这篇文章主要介绍了css制作网页中的虚线(border属性的使用方法),需要的朋友可以参考下 这里边框属性的虚线边框border控制虚线。以下配置的css 高度(css height)和css 宽度(css width)为350像素。 一、…

    编程技术 2025年3月10日
    200
  • 关于CSS的图像拼合技术

    这篇文章主要介绍了关于CSS的图像拼合技术 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下    图像拼合就是单个图像的集合。    有许多图像的网页可能需要很长事件来加载和生成多个服务器的请求。    使用图像拼合会降低服…

    编程技术 2025年3月10日
    200
  • CSS的positon属性的分析

    这篇文章主要介绍了关于CSS的positon属性的分析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 position是CSS中非常重要的一个属性,通过position属性,我们可以让元素相对于其正常位置,父元素或者浏览器窗…

    2025年3月10日 编程技术
    200
  • CSS样式的覆盖规则

    下面为大家带来一篇css样式覆盖规则全面了解。内容挺不错的,现在就分享给大家,也给大家做个参考。 大家都知道CSS的全称叫做“层叠样式表”,但估计很多人都不知道“层叠”二字的含义。其实,“层叠”指的就是样式的覆盖,当一个元素被运用上多种样式…

    编程技术 2025年3月10日
    200
  • 提高css性能的方法

    这篇文章主要介绍了css性能优化提高css性能的方法,不规范的css会导致很多性能问题,所以学习掌握css性能优化技巧是非常必要的,对css性能优化知识感兴趣的朋友一起学习吧 不规范的css会导致很多性能问题,这些问题可能在一些小的项目中不…

    编程技术 2025年3月10日
    200
  • CSS编写代码时的高性能总结

    这篇文章主要介绍了css编写时的性能优化以及高维护性优化建议总结,包括雪碧图和尺寸设定等热门的讨论点,需要的朋友可以参考下 性能,这个词如今被炒的很热,也是每个开发者,由“知道”、“会做”之后必经的一个“怎样做好”的阶段。性能关乎用户在不同…

    编程技术 2025年3月10日
    200
  • 关于CSS Normalize的文件配置

    这篇文章主要介绍了css normalize文件配置示例,对全局项目进行设置,需要的朋友可以参考下 作为前端工程师,很多人都有自己的一套CSS Normalize文件,这样能省掉开发过程中的不少麻烦,提高工作效率。在前人的基础上,我总结了自…

    编程技术 2025年3月10日
    200
  • 在CSS中对RGB颜色的使用分析

    这篇文章主要介绍了CSS中对RGB颜色的使用详解,是CSS入门学习中的基础知识,需要的朋友可以参考下 RGB颜色模型解释 RGB颜色模型就是一种描述某个颜色里面有多少红、绿、蓝三原色的量的方法,就像把水彩颜料或油彩颜料混合起来得到某种我们想…

    编程技术 2025年3月10日
    200
  • CSS中的inherit使用分析

    这篇文章主要介绍了css中的inherit使用技巧小结,css中的继承关键字的使用是css入门学习中的基础知识,需要的朋友可以参考下 稍不留意便会忽略掉级联样式表的特点。大多数开发者都知道inherit关键字,但有几个新的CSS3继承特性你…

    编程技术 2025年3月10日
    200
  • 利用css实现一款仿ios7的switches开关按钮

    这篇文章主要为大家介绍了纯css实现的一款仿ios7的switches开关按钮,无需引js代码。在实现中给出了两种颜色,三种不同大小的demo,需要的朋友可以参考下   今天给大家介绍一款仿ios7的switches开关按钮。这款按钮也是纯…

    2025年3月10日
    200

发表回复

登录后才能评论