reactjs - 开玩笑找不到 SCSS 模块
问题描述
这是我的代码(只是一个非常基本的设置)。所有文件都在同一个文件夹中。
我正在使用create-react-app
.
用户.tsx:
import React from "react";
import styles from "./User.module.scss";
const User: React.FC = () => {
return <div className={styles.user}>User</div>;
};
export default User;
用户.module.scss:
@import "scss/abstracts";
.user {
color: $dark_theme_color;
}
用户.test.tsx:
import React from "react";
import { render, getByText } from "@testing-library/react";
import User from "./User";
it("renders correctly", () => {
const { asFragment } = render(<User />);
const fragmentElement = asFragment().firstChild as HTMLElement;
const root = getByText(fragmentElement, "User");
expect(root).not.toBe(null);
expect(root).toMatchSnapshot();
});
运行时jest
出现此错误:
FAIL src/pages/User/User.test.tsx
● Test suite failed to run
src/pages/User/User.tsx:2:20 - error TS2307: Cannot find module './User.module.scss'.
2 import styles from "./User.module.scss";
jest.config.js:
module.exports = {
roots: ["<rootDir>/src"],
transform: {
"^.+\\.tsx?$": "ts-jest"
},
setupFilesAfterEnv: [
"@testing-library/react/cleanup-after-each",
"@testing-library/jest-dom/extend-expect"
],
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
moduleNameMapper: {
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
}
};
我已经尝试了谷歌搜索结果前两页的几乎所有解决方案,例如:
- 使用
__mocks__/styleMock.js
jest.mock("./User.module.scss")
jest-transform-css
jest-css-modules-transform
jest-css-modules
import * as styles from "./User.module.scss";
- 添加
declare module "*.scss";
在globals.d.ts
但没有任何效果。
请帮忙。
解决方案
我遇到了同样的问题,我可以通过设置diagnostics
来解决它false
"globals": {
"ts-jest": {
"diagnostics": false
}
}
顺便说一句,我babel-jest
用于moduleNameMapper
"moduleNameMapper": {
"^.+\\.(css|less|scss)$": "babel-jest"
}
推荐阅读
- cordova - Cordova InAppBrowser 页脚未在 android 中显示
- vue.js - 用于 Vuetify 的多线卡轮播卡
- java - 在后台构建 MongoDB 索引作为所有连接的默认行为
- javascript - 仅当 3 个输入都没有焦点时运行函数 onblur
- javascript - 如何将菜单内的项目从跨度更改为自定义 div?
- .net - 类型 [CONTROL] 未定义
- c++ - 如何使用 unique_ptr 作为值迭代映射字符串键?
- php - 我是否应该让 Apache2 服务器将 .html 文件视为/查看/解析 .php 文件?
- python - Python中的放大/缩小一维信号
- android - 未捆绑推送通知