vue.js 为什么runtimeConfig在Nuxt 3中看不到环境变量?

tzdcorbm  于 2022-11-30  发布在  Vue.js
关注(0)|答案(3)|浏览(619)

1.我在没有.env文件的情况下执行yarn build
1.将.env文件添加到项目中
1.我做yarn start
1.将useRuntimeConfig().public.baseURL输出到控制台并获得undefined
为什么运行时不跟踪我的环境变量?

.环境

NUXT_PUBLIC_BASE_URL=https://example.com/api/v1

新配置js

export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      baseUrl: ''
    }
  },

插件/应用程序.js

export default defineNuxtPlugin(() => {
  console.log('baseURL', useRuntimeConfig().public.baseURL
})
nnvyjq4y

nnvyjq4y1#

从文档页面:
但是,在构建服务器之后,您需要在运行服务器时负责设置环境变量。此时不会读取.env文件。具体操作方式因环境而异。在Linux服务器上,您可以使用终端DATABASE_HOST=mydatabaseconnectionstring node .output/server/index. mjs将环境变量作为参数传递。或者您可以使用source .env && node .output/server/index. mjs。请注意,对于纯静态站点,在预呈现项目后不可能设置运行时配置。
所以,source .env && yarn start应该可以。

ut6juiuv

ut6juiuv2#

您可以检查nuxt的版本。
如果是桥接版本,runtimeConfig无法工作。
因为我用的是@nuxt/bridge,而不是work。
然后它在3.0.0-rc.3版本上工作了。我试过了。

s5a0g9ez

s5a0g9ez3#

baseUrl: process.env.NUXT_PUBLIC_BASE_URL

你要做的就是显式地将它设置为空字符串。

相关问题