reactjs - Preact + Jest:“moduleNameMapper”和“moduleDirectories”配置未注册
问题描述
我正在尝试使用 Preact、Parcel、Typescript 和 Jest 建立一个项目。package.json
为了对我的导入使用绝对路径,我有以下内容:
"alias": {
"src": "./src"
},
这让我可以导入我的文件,import sum from 'src/math/sum';
而不是例如import sum from '../../../math/sum';
. 这一切在实际构建和运行页面时都有效,但是在使用 Jest 运行测试时,我收到一个错误:Cannot find module 'src/math/sum' or its corresponding type declarations.
仔细阅读其他 stackoverflow 问题后,我尝试使用“moduleDirectories”和“moduleNameMapper”Jest 配置字段来使别名工作开玩笑,但错误从未改变。
这是我的 Jest 配置(在 package.json 中):
"jest": {
"clearMocks": true,
"coverageDirectory": "coverage",
"moduleDirectories": ["node_modules", "./"],
"moduleNameMapper": {
"^src[/](.+)": "<rootDir>/src/$1",
"src/([^\\.]*)$": "<rootDir>/src/$1"
},
"testEnvironment": "node",
"transform": {
"^.+\\.tsx?$": "ts-jest"
}
},
这是我的 tsconfig.js:
{
"compilerOptions": {
"outDir": "./dist",
"sourceMap": true,
"noImplicitAny": true,
"module": "es6",
"moduleResolution": "node",
"esModuleInterop": true,
"target": "es6",
"jsx": "react",
"jsxFactory": "h"
},
"include": ["./src/**/*"]
}
这是我的软件包版本:
"dependencies": {
"preact": "^10.4.4",
"preact-router": "^3.2.1",
"typescript": "^3.9.3"
},
"devDependencies": {
"@types/jest": "^25.2.3",
"jest": "^26.0.1",
"parcel-bundler": "^1.12.4",
"ts-jest": "^26.0.0"
}
解决方案
我在为 Parcel 和 Jest 配置的正确路径上,缺少的部分是在 tsconfig.json 中为 Typescript 配置绝对路径。
现在,使用绝对路径,我的配置是:
package.json(用于 Parcel 和 Jest 配置)
{
...
"alias": {
"src": "./src"
},
"jest": {
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/src/$1"
},
"preset": "ts-jest"
},
...
}
tsconfig.json(baseUrl 和路径是解决我的问题的两个字段)
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"src/*": ["./src/*"]
}
},
"include": ["./src/**/*"]
}
现在我可以像这样导入我的 TS 文件,假设我的 src 目录中有一个名为“sum.ts”的文件:import sum from 'src/sum';
推荐阅读
- vb.net - 通过 Microsoft SQL 在 VB 中连接和过滤组合框
- android - DynamoDB 在 Android Kotlin 中使用数学函数查询地理位置
- powershell - 如何重新启动(计划)计算机?
- java - Jasper 报告 PDF 导出
- android - Material TabLayout 访问问题
- oracle - 即使所有 NLS 设置都匹配,由于 to_timestamp 上的 ORA-01830 错误,无法导入导出的 SQL 数据
- sql - 如何在 Rails 控制台中的某个值之间添加值
- excel - 自动工作表计算单元格值更改不起作用
- macos - 在 macOS 上减少安装
- json - Powershell JSON管道将多个值扩展为一列csv