【问题标题】:Is it possible to add environment variables to a tsconfig.json file?是否可以将环境变量添加到 tsconfig.json 文件?
【发布时间】:2020-06-08 04:00:16
【问题描述】:
我有一个 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
}
}
我想用环境变量替换 ../../。
有哪些可能的解决方案?
【问题讨论】:
标签:
typescript
environment-variables
development-environment
tsconfig
tsconfig-paths
【解决方案1】:
tsconfig.json 是一个简单的 JSON 文档,缺少任何引用环境变量的方法。您可以在tsconfig Schema 中查看所有可能的选项。
但这并不限制您的用例。您可以使用数据模板语言,例如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