我对子项目添加了一些更改example-app-v12-monorepo
以反映我的情况:
创建
public_api.ts
文件作为共享类的桶examples/example-app-v12-monorepo/projects/app1/src/app/shared/public_api.ts
。配置
tsconfig.json
文件,examples/example-app-v12-monorepo/tsconfig.json
因此它包含我的更改:
"paths": {
"@app1/shared": ["projects/app1/src/app/shared/public_api"]
}
- 在中添加了模块映射
examples/example-app-v12-monorepo/projects/app1/jest.config.js
:
moduleNameMapper: {
'@app1/shared': 'projects/app1/src/app/shared'
}
- 将共享文件夹的相对路径更改为绝对路径。例如:
'../shared/highlight.directive'
->'@app1/shared'
结果:当我尝试运行测试时yarn test
出现错误:
Configuration error:
Could not locate module @app1/shared mapped as:
projects/app1/src/app/shared.
Please check your configuration for these entries:
{
"moduleNameMapper": {
"/@app1\/shared/": "projects/app1/src/app/shared"
},
"resolver": /Users/psmul/Desktop/jest-preset-angular/examples/example-app-v12-monorepo/node_modules/jest-preset-angular/build/resolvers/ng-jest-resolver.js
}
有没有办法配置/修复这个路径映射列表?
##edit 由于调查进度
当我添加<rootDir>
到绝对路径时,我得到了最接近想要的结果:导致
@app1/shared': '<rootDir>/projects/app1/src/app/shared/public_api
:
jest-preset-angular/examples/example-app-v12-monorepo/projects/app1/projects/app1/src/app/shared/public_api
基本上,如果我删除/projects/app1
部分,一切都会按预期工作。
我现在的问题:在我的(大)应用程序中,我有很多来自项目根目录的预定义路径,而 Jest 需要在子项目级别(monorepo)设置我需要找出一种方法来转换传递的路径所以它不会加倍路径段。示例:tsconfig 路径:
example/path/project1/app/src/app/public_api.ts
Jest 设置级别:
project1/app/src/app/public_api.ts
结果:
example/path/project1/app/project1/app/src/app/public_api.ts
有没有办法改造它?