Расширение файла tsconfig.json, похоже, ничего не расширяет - PullRequest
1 голос
/ 11 октября 2019

У меня есть проект, из которого мне нужно построить два разных продукта. Скажем, у меня есть

./src/advanced
./src/basic

Весь код написан в Typescript, поэтому мне нужно скомпилировать его с tsc

Из-за этого я создал 3 tsconfig files

tsconfig-base.json

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "noImplicitAny": false,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./src",
    "lib": ["es2018", "dom", "dom", "dom.iterable", "es6"],
    "importHelpers": true,
  },
  "exclude": ["node_modules", "**/*.spec.ts","dist"]

Теперь для создания продукта basic у меня есть

tsconfig-basic.json

{
  "extends": "./tsconfig-base.json",
  "compilerOptions": {
    "noEmitHelpers": true
  },
  "files": [
     "basic/main.ts"
  ]
}

И я компилирую следующим образом

$> tsc -p ./tsconfig-basic.json

Теперь у меня есть 2 вопроса

1) Файл basic/main.ts не может быть найден, он смотрит в./basic/main.ts пока должно было быть ./src/basic/main.ts. Почему baseUrl не добавлено?

2) Если (1) зафиксировано, скомпилированные файлы не записываются в ./dist. Почему "outDir": "./dist из базового файла здесь не используется? Когда я добавляю outDir в tsconfig-basic.json , он работает как положено

В любом случае, похоже, что расширение здесь не работает или работает иначе, чем я ожидаю. Любое предложение, как улучшить мои настройки?

1 Ответ

1 голос
/ 11 октября 2019

1) baseUrl предназначен для использования только с такими упаковщиками, как веб-пакет. Смотрите обсуждение TypeScript / 10866

2) Это, к сожалению, дизайн. См. Выпуск TypeScript / 29172

Цитата Уэсли Вигама (сотрудник Microsoft):
Опции компилятора на основе пути (outDir, outFile, rootDir, include, files) разрешаются изфайл конфигурации, в котором они находятся)

Вам нужно будет повторить outDir для каждого файла tsconfig.json, который у вас есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...