Ada*_*dam 20 environment-variables node.js monorepo turborepo
我已经设置了一个基本的turborepo 项目,我想.env在所有应用程序和一些包之间共享变量。如果我.env在项目的根目录中设置一个文件,所有应用程序和包如何访问它们。或者根据我的要求,我是否需要.env在所有应用程序和包中设置多个文件?
Erw*_*wol 10
截至 22 年 12 月,根据官方turbo文档推荐的执行此操作的方法如下:
cd root-directory-of-your-project。npm add -D dotenv-cli(或用pnpm: pnpm add -D dotenv-cli -w)。.env在项目的根目录中
创建一个文件。.env到项目的根目录中.gitignore。.env文件中。
nextjs请记住在公共变量前添加前缀NEXT_PUBLIC_*(例如NEXT_PUBLIC_GOOGLE_ANALYTICS_TOKEN=1234:)。turbo.json文件中,添加每个作业所依赖的变量pipeline。
{
"$schema": "https://turborepo.org/schema.json",
"pipeline": {
"dev:frontend": {
"outputs": ["dist/**", ".next/**"],
"env": ["NEXT_PUBLIC_GOOGLE_ANALYTICS_TOKEN"]
},
"dev:backend": {
"outputs": ["dist/**", ".next/**"],
"env": ["DATABASE_URL"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS_TOKEN。完成后,项目的结构应类似于以下内容:
apps
backend <<< Your backend code. You don't need to keep any .env file here.
frontend <<< Your frontend code. You don't need to keep any .env file here.
package.json <<< Where you should install dotenv-cli as a dev dependency.
turbo.json <<< Where pipeline jobs and their dependencies on environment variables are specified.
.env <<< Where all your environment variables will be stored.
Run Code Online (Sandbox Code Playgroud)
globalDependencies您可以在 Turbo 配置中指定该选项或使用--global-depsCLI 标志。
{
// ... rest of the turbo config
globalDependencies: ['.env']
}
Run Code Online (Sandbox Code Playgroud)
或者
turbo run build --global-deps=".env.*"
Run Code Online (Sandbox Code Playgroud)
文档参考:
https://turborepo.org/docs/reference/configuration#globaldependencies https://turborepo.org/docs/reference/command-line-reference#--global-deps
| 归档时间: |
|
| 查看次数: |
17117 次 |
| 最近记录: |