webpack - 构建后更改 next.config.js 变量
问题描述
我使用 nextjs 创建了一个应用程序,并将 next.config.jspublicRuntimeConfig
用于可以更改的变量。我存储诸如页面默认标题和/或我的站点配置之类的内容。
可以为具有不同设置的不同客户安装此应用程序。
例如,我有一个AGENCY_NAME
属性,里面publicRuntimeConfig
对于不同的客户显然是不同的。
一个可以是“公司 1”,另一个可以是“公司 2”。
我构建了这个应用程序一次并将其移动到我的服务器,然后为每个新客户复制相同的文件夹并为其创建一个主机。
但是当我尝试更改其中的变量时, next.config.js
它不会影响值并且值保持不变。只有当我重建我不想做的应用程序时它才会生效。
那么,是否有可能对此进行一些解决方法,或者是否有任何其他方法可以实现这一目标?我只想有一些可以在生产后期更改的变量。
注意:变量在服务器端和客户端都使用。
解决方案
好的!3天后我想通了。
这是实现这一目标的步骤。
使用或安装
dotenv
软件包npm i dotenv
yarn add dotenv
.env.local
在项目根目录中创建文件在 .env 文件中添加变量
像这样创建
next.config.js
和你的变量publicRuntimeConfig
publicRuntimeConfig: { FIRST_VAR: process.env.NEXT_PUBLIC_FIRST_VAR, SECOND_VAR: process.env.NEXT_PUBLIC_SECOND_VAR, }
使用创建构建
npx next build
.env.local
当您需要更改变量时,只需更改文件
老实说,我不知道为什么安装 dotenv 包可以解决这个问题。我最好的猜测是,它改变了 nextjs 的行为方式和使用 .env 文件的方式。
推荐阅读
- c++ - 如何在系统上使用并行 std::for_each
不见了? - c# - 找不到文件?C# - 获取资源
- python - 根据另一个列表中的值获取列表值
- python-3.x - 如何在异常/错误后继续在 Python 中继续执行程序
- html - 是否可以在不移动元素的情况下更改 html 上的索引顺序?
- ios - 来自本地通知附件 (UNNotificationAttachment) 的图像有时不显示
- linux - 最佳 Linux 脚本;将 SRT 重命名为同一文件夹中电影文件的名称;多个子文件夹
- nextflow - Nextflow 通道创建条件
- winapi - 无法使用 rust winapi 获取 pid 的用户名
- arrays - 使用 libpng 从内存中的数字数组创建 png 图像