vue.js - nuxtjs(dotenv 除外)上推荐的动态运行时配置技术
问题描述
我一直在尝试使用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有问题!
导入和使用运行时配置的推荐方式是什么?
解决方案
As per documentation in the Nuxt blog post you marked, the feature your are trying to use is released in 2.13 (you´re using 2.4 if i not misunderstood). That could be the reason behind the behaviour you're seeing. I'd recommend update your project dependencies or trying another approach.
推荐阅读
- linux - 如何在 Linux 上发送请求 POST
- java - 如何在java中从xml节点创建格式化字符串
- r - 将多个 .rda 文件加载到 r 中的列表中
- android - 更新时没有错误,但是图像无法更新android sqlite
- java - 更改 NetBeans 外观的外观
- r - lapply,数据争吵日期,意外输出
- jenkins - 访问先前 Jenkins 构建中哪个阶段失败
- ruby-on-rails - Rails index.html.erb 删除项目 - 不工作
- regex - Oracle SQL:提取每行中的所有匹配字符串
- asp.net - 访问嵌套 UpdatePanel 内的模型绑定项