我对我的 Next.js 项目有疑问。
我已将我的项目配置为通过独立模式进行部署
experimental: {
outputStandalone: true
}
使用它,它会生成一个独立的文件夹,其中包含预期的
server.js
。
主要问题是我在源代码中使用了一个环境变量,称为
NEXT_PUBLIC_API_BASE_URL
当我以开发模式启动项目时(使用
next serve
),它工作正常。
但是当我启动独立生成的文件(使用
node server.js
)时它不起作用。
似乎该文件是在“服务器端”加载的,当我
console.log
在.next/standalone/server/pages/_app.js
中查看其值时,它在节点控制台中显示了正确的值。
但看起来接下来是使用
.next/static/chunks/pages/
下的文件和另一个似乎无法访问 process.env (在浏览器端)的 app.js。
我认为在我的环境变量前加上
NEXT_PUBLIC
是为了以这种方式工作,但似乎不是。
知道它是如何运作的吗?
您可以使用此包https://www.npmjs.com/package/next-runtime-env允许Next.js中的运行时环境变量。