【发布时间】:2020-01-19 18:31:29
【问题描述】:
要点
我喜欢遵循“干”(不要重复自己)的原则。但目前我在三个不同的地方有几乎相同的路径配置:
1。打字稿配置文件
我有一个带有多个 Bazel Typescript 包的 monorepo,因此我需要在 tsconfig.json 中使用类似这样的路径来引用它们
"paths": {
"@cents-ideas/enums": ["./packages/enums"],
"@cents-ideas/utils": ["./packages/utils"],
"@cents-ideas/event-sourcing": ["./packages/event-sourcing"],
"@cents-ideas/models": ["./packages/models"]
},
2。节点包文件
对于使用ts-node 的开发,我还需要添加package.json 的路径,以便Node.Js 可以识别Typescript 别名。 (为此,我使用了一个名为 module-alias 的包。
"_moduleAliases": {
"@cents-ideas/enums": "./packages/enums",
"@cents-ideas/utils": "./packages/utils",
"@cents-ideas/event-sourcing": "./packages/event-sourcing",
"@cents-ideas/models": "./packages/models"
}
3。 Jest 配置文件
最后我还需要将这些路径添加到我的 Jest 配置中,以便测试可以找到路径:
moduleNameMapper: {
'^@cents-ideas/utils(.*)$': '<rootDir>/packages/utils$1',
'^@cents-ideas/event-sourcing(.*)$': '<rootDir>/packages/event-sourcing$1',
'^@cents-ideas/enums(.*)$': '<rootDir>/packages/enums$1',
'^@cents-ideas/models(.*)$': '<rootDir>/packages/models$1',
},
目标
我的目标是有一个可以放置路径的公共位置,并且所有其他位置都会自动更新。
如果您需要进一步了解该项目,可以在这里查看:https://github.com/flolude/cents-ideas
【问题讨论】:
标签: typescript jestjs bazel monorepo module-alias