Можно ли добавить переменные среды в файл tsconfig.json?

У меня есть файл tsconfig.json, содержащий

{
  "extends": "../../zlux-app-manager/virtual-desktop/plugin-config/tsconfig.base.json",
  "include": [
    "src/**/*.ts",
    "../../zlux-platform/interface/src/mvd-hosting.d.ts"
  ],
  "compilerOptions": {
    "skipLibCheck": true
  }
}

Я хочу заменить ../../ переменной окружения. Какие есть возможные решения?

1 ответ

tsconfig.json- это простой документ JSON, в котором отсутствует какой-либо способ ссылки на переменные среды. Вы можете проверить все возможные варианты в схеме tsconfig.

Однако это не ограничивает ваш вариант использования. Вы можете использовать язык шаблонов данных, например Jsonnet. Это проект на 20%, который может генерировать динамический json (или другие форматы обозначений). Вы можете использовать его для создания вторичного файла tsconfig.json и передачи его в качестве аргументов в tsc.

Или

Просто используйте Python/JS/ любой язык программирования. В конце дня вам нужно произвестиjson file к tsc, создайте его! Следующий код Python с приведенным ниже скриптом работает отлично.

import os, json
r ={
  "extends": os.environ['FOO'] + "/zlux-app-manager/virtual-desktop/plugin-config/tsconfig.base.json",
  "include": [
    "src/**/*.ts",
    os.environ['FOO'] + "/zlux-platform/interface/src/mvd-hosting.d.ts"
  ],
  "compilerOptions": {
    "skipLibCheck": True
  }
}
print(json.dumps(r))

Команда Bash

$ FOO=mydir python3 tsconfig.py > tsconfig.json && tsc tsconfig.json