findxc/blog

npm start 前怎么根据环境变量动态生成 tsconfig.json

Opened this issue · 0 comments

tsconfig 是 json 文件,是写死的,不能根据环境变量进行不同赋值。某些场景下某些配置确实需要根据环境变量来赋值时,可以参考 microsoft/TypeScript#25271 (comment) 进行处理。

方案

首先新建一个 tsconfig.js ,内容如下:

module.exports = {
  // 根据 process.env.xxxx 赋值即可
}

然后新建一个 set-tsconfig.js ,内容如下:

const tsconfig = require('./tsconfig.js')
// 生成 tsconfig.json
require('fs').writeFileSync('tsconfig.json', JSON.stringify(tsconfig, null, 2))

然后 npm start 的命令改为 cross-env xxxx=xx node ./set-tsconfig.js && old start 即可。

补充:怎么让 git 不再追踪 tsconfig.json 变化

先把 tsconfig.json 加到 .gitignore ,然后执行 git rm --cached tsconfig.json ,这样后续 tsconfig.json 的变化就不会被 git 追踪了。