Работают ли сопоставления путей между различными проектами, на которые ссылаются? - PullRequest
0 голосов
/ 14 октября 2019

У меня возникли проблемы с отображением путей для работы двух разных проектов с машинописью в настройках рабочей области пряжи.

У меня есть 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

В моем tsconfig для / main у меня есть

    "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.

1 Ответ

0 голосов
/ 15 октября 2019

Таким образом, проблема в этой ситуации оказалась в том, что я расширяю с tsconfig.base.json, в котором не заданы ключевые «пути». По сути, наследование в файлах tsconfig работает точно так же, как в oop, и я пытался переопределить поле, которого не было в базовой конфигурации.

Исправление было просто добавить

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

внутри tsconfig.base.json и все работает.

...