如何在 @nrwl/nx monorepo 中导入绝对路径?

Sen*_*ika 7 typescript reactjs tsconfig monorepo nrwl-nx

我正在开发一个@nrwl/nxmonorepo。我想src通过绝对路径导入项目内的文件夹。我尝试指定baseUrl但没有用。唯一有效的解决方案是添加 monorepo 根文件的路径,tsConfig.json如下所示。

"paths": {
   "*": ["apps/my-app/src/*"]
}
Run Code Online (Sandbox Code Playgroud)

但是,问题是,如果我有另一个项目,我也必须将该项目添加到此路径中。我尝试了如下。

"paths": {
   "*": ["apps/*/src/*"]
}
Run Code Online (Sandbox Code Playgroud)

但是,这不再起作用了。它与项目文件夹名称不匹配。

我该如何解决这个问题?或者,有没有更好的方法通过绝对路径导入?

Dar*_*ver 1

由于在 nx monorepo 中组织常见的 DTO 和 Event.ts 文件,我面临着同样的问题。我发现使用更简单的路径快捷方式更新 tsconfig.base.json 很有用,它允许跨应用程序导入,同时保留在单个应用程序 tsconfig.json 文件中设置绝对路径的选项。

这是我的 base.json:

"baseUrl": ".",
"paths": {
  "libs": [
    "libs/"
  ],
  "app1: [
    "apps/app1/"
  ],
  "app2": [
    "apps/app2/"
  ],
}
Run Code Online (Sandbox Code Playgroud)

现在我有一种绝对导入,它指向应用程序名称作为基础:

import {CreateUserEvent} from 'libs/events/create-user.event';
Run Code Online (Sandbox Code Playgroud)

这是 app1/src/app/ 文件夹中的一个随机文件,它导入 libs 文件夹中的文件

文件夹结构为:

root ('.') 
|__ app1/src/app/file_with_import.ts
|__ ... 
|__ ...
|__ libs/events/create_user.event.ts
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你