路径映射是否在被引用的不同项目之间起作用?

问题描述 投票:0回答:1

我无法在纱线工作区设置中使路径映射在两个不同的打字稿项目之间工作。

我在纱线工作区中有2个不同的项目。因此文件夹结构如下所示。

packages
├── common
│   ├── node_modules
│   ├── package.json
│   ├── src
│   │   └── logger.ts
│   └── tsconfig.json
├── main
│   ├── node_modules
│   ├── package.json
│   ├── src
│   │   ├── app
│   │   │   └── settings.ts
│   │   └── main.ts
│   └── tsconfig.json
tsconfig.base.json
node_modules

在我的/ main的tsconfig中,我有

    "baseUrl": ".",
    "paths": {
      "Common/*": ["../common/src/*"]
    },
    "references": [
    { "path": "../common","prepend": true }
  ]

在main / src / main.ts中,我试图像这样从模块导入默认导出

import Log from 'Common/logger'

但是我遇到了错误:

TS2307:找不到模块

这不是我使用打字稿时遇到的问题,所以我想知道问题是否与我试图映射的路径也被用作项目参考这一事实有关。

我希望它能像往常一样工作,能够将../common/src/logger导入为Common/logger

javascript typescript yarn tsc
1个回答
0
投票

因此,在这种情况下的问题原来是我是从tsconfig.base.json扩展而来的,该文件中没有设置关键的“路径”。基本上,tsconfig文件中的继承工作与oop中的工作完全相同,并且我试图覆盖基本配置中不存在的字段。

解决方法是简单地添加

    "paths": {
      "Common/*": ["./packages/common/src/*"]
    }

tsconfig.base.json内部,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.