首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过扩展tsconfig.base.json创建每个项目路径别名

通过扩展tsconfig.base.json创建每个项目路径别名
EN

Stack Overflow用户
提问于 2022-12-02 17:01:41
回答 1查看 17关注 0票数 1

我正在NX上工作,目前我有两个lib和一个应用程序。

  1. 两个库路径别名在tsconfig.base.json中注册如下:

代码语言:javascript
复制
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@sca/config": ["libs/sca-config/src/index.ts"],
      "@sca/utils": ["libs/sca-utils/src/index.ts"]
    }
  }
}

  1. In sca-configtsconfig.json看起来像:

代码语言:javascript
复制
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["libs/sca-config/src/*"]
    }
  }
}

  1. In sca-utilstsconfig.json看起来像:

代码语言:javascript
复制
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["libs/sca-utils/src/*"]
    }
  }
}

现在,考虑到我还没有在两个库中覆盖baseUrl,我必须能够在sca-config中使用路径别名@sca/utils。同时,在两个项目中,我必须能够使用@/some/internal/project/file从项目中导入文件。

目前还没有发生这种情况,看起来继承的路径被完全覆盖,而不是继承。

我试图在tsconfig.json of sca-config中这样做,但它看起来很难看。而且,对于每个库导入,我似乎都要这样做:

代码语言:javascript
复制
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["libs/sca-config/src/*"],
      "@sca/utils": ["libs/sca-utils/src/index.ts"]
    }
  }
}

这证实了这样一个事实:扩展tsconfig.base.json,然后向项目级别tsconfig.json添加路径,tsconfig.json将覆盖paths属性,而不是合并它。

我的问题是,有什么好办法吗?因为一旦图书馆的数量和它们对彼此的依赖增加,它就会变得过于混乱。更不用说,它还会重复(同时添加tsconfig.base.json和项目级别的tsconfig.json__)。

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 17:12:43

您可以在tsconfig.json的paths属性中使用通配符(*)来指定所有路径都应该从tsconfig.base.json文件继承。这将允许您在tsconfig.base.json文件中定义路径别名,然后在每个库的tsconfig.json文件中使用这些别名,而不必在每个文件中显式指定它们。

下面是一个示例,说明如何在tsconfig.json的paths属性中使用通配符从tsconfig.base.json继承路径别名:

在tsconfig.base.json中:

代码语言:javascript
复制
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@sca/config": ["libs/sca-config/src/index.ts"],
      "@sca/utils": ["libs/sca-utils/src/index.ts"]
    }
  }
}

在tsconfig.json for sca中:

代码语言:javascript
复制
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["libs/sca-config/src/*"]
    }
  }
}

在tsconfig.json for sca中:

代码语言:javascript
复制
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["libs/sca-utils/src/*"]
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74659134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档