无法在nuxt.config.js中访问env

时间:2020-07-09 13:27:58

标签: vue.js vuejs2 environment-variables nuxt.js

我正在SPA模式下使用Nuxt v2.12.2,并希望在默认head中使用env变量。我正在使用@nuxtjs/dotenv,但是在呈现页面时,baseUrl是未定义的。

我可以从页面布局内正常访问BaseUrl,但不能从nuxt.config.js内部访问,如下所示。

.env

BASE_URL=https://example.com

nuxt.config.js

const env = import('dotenv')
env.config()

export default {
  mode: 'spa',

  generate: {
    fallback: true
  },

  env: {
    baseUrl: process.env.BASE_URL || 'http://localhost:3000'
  },

  head: {
    meta: [
      {
        hid: 'og:image',
        name: 'og:image',
        content: process.env.baseUrl + '/og/facebook.png'
      }
    ],
  },

  modules: [
    '@nuxtjs/dotenv'
  ]

  ...
}

2 个答案:

答案 0 :(得分:2)

设置process.env.baseUrl属性后,尚未设置

head

一种解决方案是对head使用功能,该功能将在设置env之后运行:

export default {
  head: () => ({
    meta: [
      {
        hid: 'og:image',
        name: 'og:image',
        content: process.env.baseUrl + '/og/facebook.png'
      }
    ]
  })
}

答案 1 :(得分:0)

上面的解决方案(使用头部函数)对我不起作用,但这样做了:

https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-env

如果您使用 NUXT_ENV_,那么 env 变量在构建时可用,并且可以在头部使用!