是否可以将环境变量添加到 tsconfig.json 文件中?

Swe*_*ank 5 development-environment environment-variables typescript tsconfig tsconfig-paths

我有一个 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
  }
}
Run Code Online (Sandbox Code Playgroud)

我想用环境变量替换../../ 。可能的解决方案有哪些?

fru*_*kad 1

tsconfig.json是一个简单的 JSON 文档,缺少任何引用环境变量的方法。您可以检查tsconfig Schema中所有可能的选项。

但这并不限制您的用例。您可以使用数据模板语言,例如Jsonnet。这是一个 20% 的项目,可以生成动态 json(或其他表示格式)。您可以使用它生成辅助 tsconfig.json 文件并将其作为参数传递给 tsc。

或者

只需使用Python/JS/任何编程语言。在一天结束时,您需要生成一个json fileto 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))
Run Code Online (Sandbox Code Playgroud)

重击命令

$ FOO=mydir python3 tsconfig.py > tsconfig.json && tsc tsconfig.json
Run Code Online (Sandbox Code Playgroud)