javascript - 开玩笑说只转换模块中的某些文件类型
问题描述
我目前有一个使用 jest 进行单元测试的项目。我遇到的问题是其中一个依赖模块需要一个 .css 文件:
./node_modules/problem-module/dist/problem-module.js:
line 0: require("./problem-module.css");
我将 jest 配置为不忽略该特定模块进行转换,从而解决了需要 CSS 的问题。虽然,现在测试失败了,因为 jest 正在尝试使用 babel-jest 转换模块中的所有 .js 文件,这些文件之前都在模块发布之前通过 babel 运行过。这会导致类似于以下的错误:
TypeError: (0 , problemModuleFunction.default) is not a function
我开玩笑的配置:
"jest": {
"testEnvironment": "jsdom",
"testMatch": [
"<rootDir>/src/**/*.test.js"
],
"moduleDirectories": [
"<rootDir>/src",
"<rootDir>/node_modules"
],
"moduleNameMapper": {
"\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js",
"\\.(jpg|gif|ttf|eot|svg)$": "<rootDir>/__mocks__/fileMock.js"
},
"transform": {
"^((?!mock).)*.(js|jsx)$": "babel-jest",
"\\.(css|styl|less|sass|scss)$": "<rootDir>/node_modules/jest-css-modules-transform"
},
"transformIgnorePatterns": [
"node_modules/(?!(problem-module))"
],
"setupFilesAfterEnv": [
"<rootDir>/setupTests.js"
],
"moduleFileExtensions": [
"css",
"scss",
"js",
"json",
"jsx"
]
},
确保在不转换任何 JS 文件的情况下正确映射此模块中的 CSS 文件的最佳方法是什么?
解决方案
推荐阅读
- node.js - 保存对象类nodejs的存储
- docker - 为什么在 Kubernetes 中为 jenkins 代理使用多个容器?
- r - 在R中的数据框中每y行删除x行
- angular - 如何在 Angular 应用程序的单独页面中显示帖子标题?
- c# - 带有括号的 SelectToken() 在 jToken 中抛出“解析路径索引器时出现意外字符”错误
- r - rvest 帮助:网络抓取空结果
- javascript - 如何将字符串中的所有数字从 1-9 替换为它们在 Javascript 中的拼写等效项?
- java - 类型声明是 java 项目中代码覆盖信息的一部分吗?
- python - 如何修复mypy“没有属性”错误,而类具有该属性
- html - 任何想法我在更新 npm fsevent 时出错