我试着用Preact,包裹,打字稿和Jest来建立一个项目。为了将绝对路径用于导入,我的package.json中有以下内容:
"alias": {
"src": "./src"
},这允许我导入像import sum from 'src/math/sum';这样的文件,而不是import sum from '../../../math/sum';。这在实际构建和运行页面时都有效,但在使用Jest运行测试时,我会得到一个错误:在仔细研究了其他堆栈溢出问题之后,我尝试使用"moduleDirectories“和"moduleNameMapper”Jest配置字段使别名在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"
}发布于 2020-05-23 03:40:13
我在为Parcel和Jest配置正确的路径时,缺少的部分是为tsconfig.json中的类型记录配置绝对路径。
现在,使用绝对路径,我的配置是:
package.json (用于包和Jest配置)
{
...
"alias": {
"src": "./src"
},
"jest": {
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/src/$1"
},
"preset": "ts-jest"
},
...
}tsconfig.json (baseUrl和paths是解决问题的两个领域)
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"src/*": ["./src/*"]
}
},
"include": ["./src/**/*"]
}现在我可以像这样导入我的TS文件,假设src目录中有一个名为"sum.ts“的文件:import sum from 'src/sum';
https://stackoverflow.com/questions/61950543
复制相似问题