我想知道是否有办法在codegen.yaml
我运行时使用@next/env 替换变量yarn codegen
:
graphql-codegen -r dotenv/config --config codegen.yml
- 这是加载点环境的代码生成示例
graphql-codegen -r @next/env --config codegen.yml
- 这就是我想要实现的
当我调用它时,我得到
${SERVER_API_URL}/graphql
作为undefined/graphql
我的用例是:
# .env
HOST=https
API_DOMAIN=example.com
SERVER_API_URL=$HOST://$API_DOMAIN
# codegen.yaml
schema: ${SERVER_API_URL}/graphql
为什么使用@next/env?它替换了 .env 中的变量,我附上了 next.js 文档中的文档示例:
注意:Next.js 将自动扩展 .env* 文件中的变量 ($VAR)。这允许您引用其他机密,如下所示:
# .env
HOSTNAME=localhost
PORT=8080
HOST=http://$HOSTNAME:$PORT
If you are trying to use a variable with a $ in the actual value, it needs to be escaped like so: \$.
例如:
# .env
A=abc
# becomes "preabc"
WRONG=pre$A
# becomes "pre$A"
CORRECT=pre\$A
来源:https ://nextjs.org/docs/basic-features/environment-variables#loading-environment-variables