Javascript VS代码类型脚本Jest模块映射
我将TypeScript与Jest一起使用VS code,并映射了一些模块路径,以便更容易地访问这些模块 非常简单,我的目录结构如下所示:Javascript VS代码类型脚本Jest模块映射,javascript,typescript,visual-studio-code,jestjs,ts-jest,Javascript,Typescript,Visual Studio Code,Jestjs,Ts Jest,我将TypeScript与Jest一起使用VS code,并映射了一些模块路径,以便更容易地访问这些模块 非常简单,我的目录结构如下所示: ├── app │ └── middleware │ └── auth.ts ├── jest.config.js ├── package.json ├── package-lock.json ├── test │ └── unittest │ └── app │ └── middleware │
├── app
│ └── middleware
│ └── auth.ts
├── jest.config.js
├── package.json
├── package-lock.json
├── test
│ └── unittest
│ └── app
│ └── middleware
│ └── auth.test.ts
└── tsconfig.json
我有这些映射,我的tsconfig.json
:
“baseUrl”:“,
“路径”:{
“@app/*”:[
“/app/*”
]
}
我的jest.config.js
中的这些映射:
moduleNameMapper:{
“^@app/(.*)$”:“/app/$1”
}
一切正常,我可以毫无问题地运行Jest,但VS代码无法识别文件auth.test.ts
(在auth.ts
中)中的@app
映射
有办法解决这个问题吗?您可以使用该软件包在运行时分配别名,然后利用Jest的setupFile选项确保始终在Jest运行时创建别名
编辑:该问题需要另一个解决方案,该解决方案已在对此答案的评论中达成很抱歉,但这没有帮助。因为这只会改变运行时的行为(这很好,我的测试在没有它的情况下运行),VS代码无法识别插件。对不起,我误解了。那么我是否理解在您的
auth.test.ts
VSCode中没有检测到@app/middleware/auth.ts
?将您的别名路径与我在自己的项目中使用它们的位置进行比较,我发现的唯一区别是,我没有使用前缀/
(来自/app/*
)。我的工作方式是根据Jest默认规范从src
和\uuu测试
的基础上工作。我建议您尝试删除/
前缀作为初学者-我可以想象它可能错误地引用了测试/unittest/app
。删除/
没有帮助,但是移动到\uuuuuuuuuuuuuuuuuuuuuuuuuu
确实做到了!非常感谢。很高兴你设法解决了这个问题。***/\uuuuuu测试
模式来自。我编辑了我的原始答案以参考评论。你根本用不着,但是如果你认为答案是被接受的,我会很感激的。