应该是导入的不对
let styles = require('./popup.css').default
你改成这样的写法就可以的;至于为什么 你可以打印下styles 就明白了
检测css-loader是否安装成功,可以重新安装一遍 css-loader 或采用跟视频同版本模块再次操作
{
test: /\.css$/,
use: [
"style-loader",
{
loader: "css-loader",
options: {
modules: true,
},
},
],
include: [path.resolve(__dirname, "src/components")],
},
注意include 和 exclude的区别
TS中规定[]这种默认是可以不用定义的,底层会认为有默认的索引签名。点这种就必须要声明了,不过也可以简化声明,利用索引签名 [x: string]: any;
看着没什么问题~可以把popup.css文件贴出来~或者私信我~我把源码发你~你对照一下~看看哪里的问题
遇到一样的问题需要写成
<h1 class="${styles.default.popup}">hello</h1>
不知道为什么
其实引入的JS文件不是说在TS文件中不能用,用是没问题的。而是TS不认识这个JS中的定义,如jquery中的$,编辑器就会报错,所以才需要对应的d.ts文件。说白了TS还不那么智能,需要这种声明文件给出明确的定义方式。