【问题标题】:How to set paths property in a project with multiple tsconfig.json?如何在具有多个 tsconfig.json 的项目中设置路径属性?
【发布时间】:2018-12-08 11:43:09
【问题描述】:

我有以下文件结构

|__ app1/
|   |__ tsconfig.json
|__ utilities/
|   |__ files.ts
|__ base-tsconfig.json

base-tsconfig.json 中,我将paths 属性设置如下

"compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "utils/*": ["utilities/*"]
        }
}

tsconfig.json 中看起来如下

{
    "extends": "../base-tsconfig",
}

应该够了吧? 不过,我仍然收到以下消息。

找不到模块'utils'

【问题讨论】:

  • 你找到解决办法了吗?
  • 如果您的内部 tsconfig 中有任何其他路径,它们将完全破坏扩展的 tsconfig,请参阅github.com/Microsoft/TypeScript/issues/14527(这很烦人,因为它会破坏 DRY)

标签: typescript tsconfig


【解决方案1】:

"paths" 选项可用于通知编译器映射,但它不会自行执行这些路径转换。您可以阅读更多关于此in the docsin this issue 的信息。很可能您使用的装载机不支持 允许重新映射,例如 Node.js 的 require()。

有一些包可以帮助解决这个问题,例如module-aliastsconfig-paths

【讨论】:

    【解决方案2】:

    问题是您提供的paths 分辨率(utils/*)无法解决

    import utils from `utils`
    

    你应该使用

    "paths": {
                "utils": ["utilities"]
            }
    

    或者如果您还需要范围条目或子条目,则应涵盖这两种情况:

    "paths": {
                "utils": ["utilities"],
                "utils/*": ["utilities/*"]
            }
    

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 2021-02-22
      • 2019-11-16
      • 2016-02-10
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 2021-11-05
      • 2021-11-30
      相关资源
      最近更新 更多