nuxtjs/路由器使用运行时配置客户端

时间:2021-02-08 15:00:04

标签: javascript webpack environment-variables nuxt.js

我们正在使用 nuxt 2.14.12@nuxtjs/router 1.5.0
我们正在尝试使用运行时配置来发出一些 HTTP 请求客户端。

这是我们的router.js

export async function createRouter(ssrContext, createDefaultRouter) {

[...]

  try {
    const res = await axios.get(`${config.public.apiBaseUrl}/myslug`)
  } catch (e) { }

[...]

}

这里是配置文件

[...]

  const apiBaseUrl = `${process.env.NUXT_ENV_MY_API_URL || 'http://my-dev-domain.com'}`

[...]

export default {
    apiBaseUrl,
  },
  private: {
    apiBaseUrl,
  },

[...]

这是我们的nuxt.config.js

export default {

[...]

  publicRuntimeConfig: config.public,
  privateRuntimeConfig: config.private,

[...]

  buildModules: [
    ['@nuxtjs/router', { keepDefaultRouter: true }],
  ],

[...]

  router: {
    linkActiveClass: 'current-menu-item'
  },
[...]
}

我们在 CI 中使用 nuxt build,稍后在运行时我们使用 nuxt start

在运行时,尽管在服务器端正确设置了 env 变量 NUXT_ENV_MY_API_URL,但在客户端站点上,该变量看起来是硬编码的(我认为 webpack 替换了它)并且我们在构建时获得了值({{1 }})

有没有办法在客户端使用运行时配置?

谢谢

0 个答案:

没有答案