Общий tsconfig.json и относительные пути - PullRequest
0 голосов
/ 28 августа 2018

Моя команда поддерживает несколько пакетов, и мы пытаемся создать общий tsconfig.json с общей конфигурацией для всех них. Он содержит наши предпочтения относительно цели компиляции, JSX, выходного каталога и включаемых файлов, например:

{
  "compilerOptions": {
    "module": "esnext",
    "target": "es5",
    "lib": ["es5", "dom"],
    "jsx": "react",
    "outDir": "build/dist"
  },
  "include": ["./src/**/*.ts", "./src/**/*.tsx"]
}

Мы публикуем этот файл как общий npm-модуль, например my-build-config, а затем используем extends в каждом проекте:

{
   "extends": "./node_modules/my-build-config/tsconfig.json"
}

Проблема здесь в том, что все пути в общей конфигурации относятся к расположению файла. Например. он попытается включить файлы .ts не из текущего проекта, а внутри my-build-config. Например, вместо ./src/index.ts он ищет ./node_modules/my-build-config/src/index.ts.

Есть ли способ поделиться местоположениями файлов, чтобы они не повторялись в 10+ пакетах? Может быть, что-то похожее, что делает Джест с rootDir свойство.

1 Ответ

0 голосов
/ 28 августа 2018

Если вы знаете, что my-build-config всегда будет установлен на node_modules/my-build-config относительно каждого проекта без символических ссылок, вы можете просто добавить ../../ к каждому задействованному пути.

В качестве альтернативы можно использовать другой инструмент для копирования tsconfig.json во все проекты, например Braid (раскрытие: я участник Braid).

...