Webpack 配置module.css报错Uncaught TypeError: Cannot read properties of undefined

我的项目结构如下:

入口文件是index.jsx,组件Button.jsx使用了样式button.module.css

.btn {background-color: #4CAF50;border: none;color: white; padding: 15px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin: 4px 2px;cursor: pointer;
}.btn:hover {background-color: #3e8e41;
}   .btn:active {background-color: #3e8e41;box-shadow: 0 5px #666;transform: translateY(4px);
}

我在webpack.config.js配置如下:

const path = require('path');module.exports = {entry: './src/index.jsx', // 入口文件output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),publicPath: '/'},module: {rules: [{test: /\.jsx?$/,exclude: /node_modules/,use: 'babel-loader',},{test: /\.css$/, // 匹配css文件,或者修改为/\.moudle.css$/,只匹配后缀.module.cssuse: ['style-loader', // 将 JS 字符串生成为 style 节点{loader: 'css-loader',options: {modules: true // 启用 CSS 模块}}]}]},resolve: {extensions: ['.js', '.jsx'],},devServer: {static: {directory: path.join(__dirname, 'dist'), // 将 contentBase 替换为 static},compress:true,open: true,port: 5173,hot: true,},mode: 'development' // 开发模式
};

Button,jsx:

import React from'react';
import styles from './styles/button.module.css'const Button = ({ text, onClick }) => {return (<button className={styles.btn} onClick={onClick}>{text}</button>);    
};export default Button;

但是运行时却报错:Uncaught TypeError: Cannot read properties of undefined (reading 'btn')

我根据网络上的解决方法,

清除缓存,重新安装

npm cache clean --force
npm install style-loader@latest
npm install css-loader@latest

都无法解决。

于是认真思考:因为报错信息没有包含类似”cannot find module 'button.module.css'“,”style-loader“....,且npm命令行没有任何报错,所以可以断定css-loader和style-loader是正确安装并启动了的。

我又尝试在Button.jsx里点击了css的路径,可以正常跳转到css文件,说明路径引用也没有错误。

import styles from './styles/button.module.css'

尝试输出

console.log(styles)

结果是undefined。很奇怪,明明引用了却无法读取css类名。

试着将css的引用语句,替换为:

const styles = require('./styles/button.module.css')

搞定:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/3268.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

PyCharm中pylint安装与使用

目录 1. 安装插件2. pycharm中使用该功能3. 命令行使用 1. 安装插件 然后重启 2. pycharm中使用该功能 3. 命令行使用 前提是先 pip install pylint pylint demo01.py下面红框内容的意思是&#xff0c;得到10分/ 满分10分&#xff0c;上次运行获得8.33分&#xff0c;经调整…

无人机避障——大疆与Airsim中的角速度信息订阅获取

本文先将Airsim仿真中的角速度信息获取弄好&#xff0c;然后再将大疆SDK中的角速度话题订阅一下&#xff0c;并验证获取角速度信息&#xff0c;后续为DWA动态窗口法替代PID作为局部路径规划做足准备。 Airsim中的角速度信息获取 Airsim无人机状态获取&#xff1a;getMultirot…

绿宝石二十载:如何打破国外在高端电容市场的垄断?

【哔哥哔特导读】作为本土电容器企业&#xff0c;绿宝石凭借二十年的技术创新与市场深耕&#xff0c;在高端电容市场取得了显著突破。从铝电解电容器到叠层式固态电容器&#xff0c;绿宝石是如何做到的&#xff1f; 在当今竞争激烈的电子元器件市场中&#xff0c;技术创新、定…

JS中DOM和BOM

DOM DOM&#xff08;文档对象模型&#xff09;是一个跨平台和语言独立的接口&#xff0c;它允许程序和脚本动态地访问和更新文档的内容、结构和样式。在网页浏览器中&#xff0c;DOM 通常表示 HTML 或 XML 文档的对象模型。DOM 将网页内容视为节点树&#xff0c;其中每个节点都…

从配置anaconda到配置pycharm

Anaconda 是全球领先的数据科学与机器学习平台&#xff0c;专为开发者、数据分析师设计。通过 Anaconda&#xff0c;可以轻松管理数据环境、安装依赖包&#xff0c;快速启动数据分析、机器学习项目。 丰富的 Python 数据科学库&#xff1a;Anaconda 集成了常用的 Python 数据科…

JAVA开源项目 影城管理系统 计算机毕业设计

本文项目编号 T 045 &#xff0c;文末自助获取源码 \color{red}{T045&#xff0c;文末自助获取源码} T045&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 用…

无人机测绘遥感技术算法概述!

一、数据采集算法 航线规划算法 根据测绘任务需求&#xff0c;利用地理信息系统&#xff08;GIS&#xff09;和遥感技术&#xff0c;对无人机进行航线规划。 考虑地形、气候、障碍物等因素&#xff0c;优化飞行路径&#xff0c;确保数据采集的完整性和准确性。 传感器控制算…

剪绳子小游戏 #线上游玩 #介绍 #部分代码截图展示

自制的割绳子小游戏。 线上游玩地址&#xff1a;戳Rain的剪绳子游戏。 不得不承认做了很久。。。 简单介绍一下。。。 割绳子游戏机制 物理引擎 《割绳子》的核心在于其高度逼真的物理引擎。游戏中的所有物体&#xff0c;包括糖果、绳索、气球、弹簧等&#xff0c;都遵循…

分享一波 百度 C++ 服务器开发面试

之前有粉丝反馈说&#xff0c;有没有 C 服务器开发的面试呀&#xff1f; 还真有&#xff0c;最近有 C 同学被百度从简历池捞起来面试了&#xff0c;目前经历了一二面&#xff0c;我把比较通用的面试问题抽离出来跟大家分享一波。 这次主要面试涵盖的知识点&#xff1a; MySQ…

使用ref对父子组件进行操作

子组件 <template><view><button v-if"option.isShow" click"buttonClick">子组件关闭按钮</button></view> </template><script>export default {data() {return {option: {num: 0}}},methods: {// 父组件调用…

【从零开始的LeetCode-算法】3289. 数字小镇中的捣蛋鬼

数字小镇 Digitville 中&#xff0c;存在一个数字列表 nums&#xff0c;其中包含从 0 到 n - 1 的整数。每个数字本应 只出现一次&#xff0c;然而&#xff0c;有 两个 顽皮的数字额外多出现了一次&#xff0c;使得列表变得比正常情况下更长。 为了恢复 Digitville 的和平&…

ros入门:服务通信(c++)

ros服务通信的原理类似于RPC&#xff0c;其实现原理如下图所示 实验目标 创建一个客户端和一个服务端客户端向服务端发送两个参数num1和num2服务端接收到客户端的两个参数num1和num2&#xff0c;并计算出num1num2的求和结果&#xff0c;最后返回给客户端客户端接收服务端的计算…

域控操作二十四:主域故障辅域接替

模拟环境&#xff1a;上海DC1故障无法开机&#xff0c;导致只有一个DNS的电脑无法上网&#xff08;实际可以添加DC2但是为了实验就不说了&#xff09; FSMO还在DC1上 使用powershell把角色迁移到DC2 ntdsutil roles connections connect to server DC2SHA.whbk.cn quitSeize …

网络安全认证的证书有哪些?

在网络安全领域&#xff0c;专业认证不仅是个人技术能力的象征&#xff0c;也是职业发展的重要推动力。随着网络安全威胁的日益严峻&#xff0c;对网络安全专业人才的需求也在不断增长。本文将介绍一些网络安全认证的证书&#xff0c;帮助有志于从事网络安全行业的人士了解并选…

【MIT-OS6.S081笔记1】xv6环境搭建

最近开始做一个操作系统的神课MIT-OS6.S081&#xff0c;我做的是老版本的2020版本的&#xff0c;环境使用的是VirtualBox的Ubuntu系统&#xff0c;在这里记录一下学习的过程。首先需要搭建一下环境&#xff0c;参考官网Tools Used in 6.S081&#xff0c;这个知乎文章也写得很好…

html练习2

实现下列图片的效果 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>* {margin: 0;padding: 0;}#menu {background-color: #0c0048;width: 100%;height: 50px;margin: auto;…

ViT面试知识点

文章目录 VITCLIPBlipSAMFast TransformerYOLO系列问题 BatchNorm是对一个batch-size样本内的每个特征做归一化&#xff0c;LayerNorm是对每个样本的所有特征做归一化。 Layer Normalization&#xff08;层归一化&#xff0c;简称LayerNorm&#xff09;是一种在深度学习中常用…

意大利名模 Vittoria Ceretti

1998年出生&#xff0c;相貌一般&#xff0c;身材高&#xff0c;世界著名的维多利亚秘密花园时装秀入选模特之一&#xff0c;但愿她没上过萝莉岛。

Java - 免费图文识别_Java_免费_图片转文字_文字识别_spring ai_spring ai alibaba

本文主要是介绍借助阿里云免费的大模型额度来做高质量的图转文识别&#xff0c;图片转文字&#xff0c;或者文字识别都可以使用&#xff0c;比传统的OCR模式要直接和高效很多 。 本文使用的技术是spring ai qwen vl 。 Qwen vl有 100万Token 免费额度&#xff0c;可以用来免费…

MR30分布式IO模块与高效PLC协同

在现代工业自动化领域中&#xff0c;数据采集与控制系统扮演着至关重要的角色。其中&#xff0c;可编程逻辑控制器&#xff08;PLC&#xff09;和分布式IO模块&#xff08;Distributed I/O Modules&#xff09;是这一领域的两大核心组件。本文将详细介绍MR30分布式IO模块与PLC如…