【发布时间】:2020-05-15 08:12:04
【问题描述】:
我正在使用 Nuxt 和 Axios,但在从我的本地计算机构建应用程序时使用环境变量时遇到问题。
我已安装 @nuxtjs/dotenv 模块以尝试解决此问题,但仍有问题。
注意:在我的托管服务提供商环境中构建应用程序时,环境变量可以正常工作。它只是从我的本地机器上构建的,这给我带来了麻烦。我的 IDE 是 VS Code。
这是我在 nuxt.config.js 中的 axios 设置:
module.exports = {
...
buildModules: [
'@nuxtjs/dotenv'
],
modules: [
// Doc: https://axios.nuxtjs.org/usage
'@nuxtjs/axios'
],
axios: {
baseURL: process.env.BASE_URL
},
...
}
我的 .env 文件有以下内容:
BASE_URL="https://some.api.com"
构建应用程序时无法识别 .env 变量:
nuxt build
相反,它只是将 axios 基本 url 设置为服务器默认运行的相同主机:端口。例如:本地主机:4000
我从@nuxtjs/dotenv 模块中找到了以下文档:https://github.com/nuxt-community/dotenv-module#using-env-file-in-nuxtconfigjs。这指示您将以下内容添加到 nuxt.config.js 的顶部:
require('dotenv').config()
这适用于本地构建;我的 .env 变量被识别!但是,由于 dotenv 是一个开发依赖项,这会导致构建在部署到我的托管服务提供商时崩溃,因为无法识别该模块。
我知道我可以直接在构建命令中定义环境变量,如下所示,但我不希望这样做:
NUXT_ENV_BASE_URL=some.api.com nuxt build
有没有一种简单的方法可以让环境变量在构建过程中在 nuxt.config.js 中本地工作,并且在部署到生产环境时也能正常工作??
谢谢!
【问题讨论】:
-
您解决了这个问题吗?我也有同样的问题。
-
不,还没有。对不起
-
我在问这个问题后找到了一个可行的解决方案。我在下面添加了它。
标签: node.js axios environment-variables nuxt.js