js,ts配置css Modules

在编写代码的时候,经常会出现同名而被覆盖样式的可能,所以添加css Modules可以减少这样的冲突!

首先在webpack的配置文件中的rules加上一下代码,这是新的配置方式

参考:https://github.com/rails/webpacker/issues/2197#issuecomment-517234086

{
   test: /\.css$/,
   exclude: /node_modules/,
   use: ["style-loader", {
      loader: "css-loader",
      options: {
        modules: {
          localIdentName: "[local]_[hash:5]",
         }													
      }
    }]
 },

然后就可以编写样式,并按以下方式引入

/* index.css */
.word {
    color: red;
}
import style from "./index.css"
ReactDOM.render(<p className={style.word}>Hello World</p>, document.getElementById("root"))

效果出来了 

然后再查看下元素,发现也加上了hash值

 

然后在ts中同样使用,发现样式确实出来了,但是报错了,不能容忍任何错误

发现是ts的模块机制,所以需要声明模块,创建一个*.d.ts的文件

style为自定义名,随便取 

declare module "*.css" {
    const style: any;
    export default style;
}

这样就不会报错了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值