ree*_*ree 1 environment-variables libs nrwl-nx
我想将一些环境变量加载到我的库中的函数中,然后能够将其重新导出到几个不同的 Nextjs 应用程序。IE
之内libs/api
export const getDatabaseConnection = () => {
const host = process.env.DB_HOST
const username = process.env.DB_USERNAME
...
return newDatabaseConnection
}
Run Code Online (Sandbox Code Playgroud)
在 apps/myNextJSApp 内:
import { getDatabaseConnection } from '@myProject/api'
...
const databaseConnection = getDatabaseConnection()
...
Run Code Online (Sandbox Code Playgroud)
当我运行时,nx run myNextJSApp:serve它无法从根目录中的 .env 中提取环境变量,但是如果我运行它,nx run api:test它就完全满意了。我想我可以单独从每个应用程序中提取环境变量,然后将它们作为参数传递到我的库函数中,但这似乎有点乏味,我希望有一个全面的解决方案,我可以使用以下命令构建我的库模块环境变量,并将它们导出到我的 NextJS 应用程序。
小智 6
环境变量不应由多个应用程序共享。而且你最好也不要这样做。您创建的每个应用程序都应该有其环境文件。并且不要直接从库中读取环境。您必须在应用程序中加载环境变量并将其传递给库。
例如,将所需的配置传递给 libs 函数:
// libs/api
export const getDatabaseConnection = ({host, username}) => {
const host = host
const username = usename
...
return newDatabaseConnection
}
// apps/nextjs
import { getDatabaseConnection } from '@myProject/api'
...
const databaseConnection = getDatabaseConnection({
host: process.env.DB_HOST,
username: process.env.DB_USERNAME
})
Run Code Online (Sandbox Code Playgroud)
这样,您的代码就更具可重用性和可维护性。
正如我所说,永远不要在应用程序之间共享环境变量。
| 归档时间: |
|
| 查看次数: |
2838 次 |
| 最近记录: |