Javascript Jest moduleNameMapper查找文件:";分解器";:未定义
我在路径下的Javascript Jest moduleNameMapper查找文件:";分解器";:未定义,javascript,reactjs,jestjs,package.json,Javascript,Reactjs,Jestjs,Package.json,我在路径下的src/components/text文件夹中有一个文本文件(以及其他文件) 但是,当Web包别名从“组件/文本”导入文本时,Jest找不到此文件被使用 我尝试添加到package.json: “笑话”:{ “全球”:{ “节点环境”:“测试” }, “转变”:{ “\\.[jt]sx?$”:“巴别塔笑话” }, “冗长”:错误, “rootDir”:“, “CollectionCoverage from”:[ “***.{js,jsx,ts,tsx}”, “!***/.d.ts”
src/components/text
文件夹中有一个文本文件(以及其他文件)
但是,当Web包别名从“组件/文本”导入文本时,Jest找不到此文件代码>被使用
我尝试添加到package.json
:
“笑话”:{
“全球”:{
“节点环境”:“测试”
},
“转变”:{
“\\.[jt]sx?$”:“巴别塔笑话”
},
“冗长”:错误,
“rootDir”:“,
“CollectionCoverage from”:[
“***.{js,jsx,ts,tsx}”,
“!***/.d.ts”
],
“moduleFileExtensions”:[
“js”,
“jsx”,
“ts”,
“tsx”
],
“moduleNameMapper”:{
“\\(css | less | scss | sass | svg)$”:“标识obj代理”,
“^components/(.*)$”:“/src/components/$1”,
“^assets/(.*)$”:“/src/assets/$1”,
“^utils/(.*)$”:“/src/utils/$1”,
“^styles/(.*)$”:“/src/styles/$1”
“/^locales\/(.*)$/”:“/src/locales/$1”,
},
“测试匹配”:[
***.{spec,test}.{js,jsx,ts,tsx}
],
“modulePathIgnorePatterns”:[
“/区”
],
“transformIgnorePatterns”:[
“/node_modules/(?!(@opt ui |@equinor))”
],
“coverage目录”:“/tests/coverage/”
}
但我得到了一个错误:
测试套件无法运行
配置错误:
找不到映射为以下内容的模块组件/文本:
/用户/olahalvorsen/cssu仪表板客户端/src/components$1。
请检查这些条目的配置:
{
“moduleNameMapper”:{
“/^components\/(.*)$/”:“/Users/olahalvorsen/cssu dashboard client/src/components$1”
},
“解析器”:未定义
}
因此,ModuleMapper中的“^components/(.*)$”:“/src/components/$1”
解决了上面的第一个问题:)
但现在我得到了另一个错误:
FAIL src/pages/errorpage/tests/error.test.jsx
● Test suite failed to run
Cannot find module 'locales' from 'src/utils/helpers/helpers.js'
Require stack:
src/utils/helpers/helpers.js
src/components/text/index.jsx
src/pages/errorpage/error.jsx
src/pages/errorpage/tests/error.test.jsx
29 | import { nb, enGB } from "date-fns/locale";
30 |
> 31 | import translations from "locales";
| ^
32 |
33 | export const capitalize = string => {
34 | if (typeof string === "string") {
我更新了上面的package.json。区域设置的相对目录是src/locales
。这不应该起作用吗:
"moduleNameMapper": {
"^locales/(.*)$": "<rootDir>/src/locales$1",
“moduleNameMapper”:{
“^locales/(.*)$”:“/src/locales$1”,
我尝试使用:“/^locales\/(.*)$/”:“/src/locales/$1”
解决方案是使用:
“^locales(.*)$”:“/src/locales/$1”
基于日志,我猜您的配置是/^components\/(.*)$:“/src/components$1”
,它与给定代码不同的是^components(.*)$
假设上述内容是正确的,那么您可能需要更改为以下内容以使其正常工作:
{
“moduleNameMapper”:{
“/^components\/(.*)$/”:“/src/components/$1”//您在剩余值“$1”之前漏掉了“/”`
},
}
谢谢你的帮助。我现在找不到另一个模块。你有什么建议吗?我尝试了你在上面描述的方法,但没有成功。我现在可以使用了!使用“^locales(.*)$”:“/src/locales/$1”。
你应该将/
从其他模块中排除,这样更好:^locales\/(.*))$
您似乎还有一个问题。您是否检查了我为您留下的答案?是的,谢谢-它起作用了。我还有一个问题:)