Skip to main content

管理自定义环境变量

reSKRipt允许使用.env*文件管理自定义的环境变量。

环境变量文件

reSKRipt会使用以下顺序依次加载环境变量文件,其中{mode}部分为--mode参数对应的developmentproduction

.env
.env.{mode}
.env.local
.env.{mode}.local

如果当前项目是一个monorepo,则会额外再读取仓库根目录下的相关文件,顺序为:

/.env
/.env.{mode}
/.env.local
/.env.{mode}.local
/packages/{package}/.env
/packages/{package}/.env.{mode}
/packages/{package}/.env.local
/packages/{package}/.env.{mode}.local

除此之外,对于builddevtestplay命令,你可以使用--env-file参数传递一个或多个自定义的环境变量文件:

skr build --env-file=.env.team --env-file=.env.me

使用--env-file传递的文件优先级高于内置的逻辑,多个--env-file传递文件越靠后的优先级越高。上面的代码将以.env.me为最高优先级,.env.team次之,再次之为内置的读取逻辑。

caution

不要在.env.*文件中放置任何敏感信息,不要将.env.*.local文件提交到远程仓库中。

环境变量展开

reSKRipt使用dotenv-expand展开环境变量,如你在.env中有以下内容:

API_BASE_UEL=/api
CANARY_API_BASE_URL=$API_BASE_URL/canary

则最终CANARY_API_BASE_URL的值会变为/api/canary