我一直在尝试使用publicRuntimeConfig / privateRuntimeConfig在 nuxt 2.4.1 上,我在nuxt.config.js 上定义了我的运行时配置如下
publicRuntimeConfig: {
DATA_API_HOST_URL: process.env.VUE_APP_DATA_API_HOST_URL,
},
privateRuntimeConfig: {
AUTH_APP_CLIENT_SECRET: process.env.VUE_APP_AUTH_APP_CLIENT_SECRET,
},
并在我的login.vue上按如下方式调用它
asyncData( ctx ) {
console.log(ctx.$config.DATA_API_HOST_URL)
//some activity
}
- 密钥显示在asyncData内的$config上。我在 chrome 开发工具上进行了调试。但是不会从process.env.VUE_APP_DATA_API_HOST_URL读取值。该值显示为undefined。但是,process.env.VUE_APP_DATA_API_HOST_URL显示值 OK。重点是远离process.env。
- this.$config.DATA_API_HOST_URL也不会访问这些值。
- '${DATA_API_HOST_URL}'显示在示例中,但我相信它仅适用于asyncData中的显式参数声明,例如
asyncData( { $config : {DATA_API_HOST_URL})
. - 当我在使用时传递值时
DATA_API_HOST_URL: process.env.VUE_APP_DATA_API_HOST_URL || 'https://test.api.com'
,似乎可以使用ctx.$config.DATA_API_HOST_URL复制值!
在我看来,将process.env复制到 * RuntimeConfig有问题!
导入和使用运行时配置的推荐方式是什么?