问题标签 [dotenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2435 浏览

reactjs - 如何在 npm 脚本中使用自定义 env(.env.production.abc) 文件

我对多个项目使用相同的代码,根据环境文件值,它为项目提供不同的功能。

我已经添加了:

所以我想做如果我运行npm run abc它应该采取.env.production.abc,如果我运行命令npm run xyz它应该采取.env.production.xyz

可能吗?

0 投票
1 回答
1602 浏览

babeljs - dotenv 在使用 Babel 进行转译后无法正常工作

我使用在 dev 中工作的 dotenv 读取 .env 的代码,但是在使用 Babel 进行反编译之后,来自 process.env 的值是未定义的。我创建了一个示例程序来说明下面的问题。

如果我在 projectRoot 并运行

然后

打印值 'var1Val'

但是,如果我这样做

VAR1 的值是“未定义”。

index.js

.env

.babelrc

包.json

0 投票
1 回答
1640 浏览

python - 为什么 pip 安装 dotenv?

下面是一个 shell 会话,演示了以下步骤:

  1. 创建并进入虚拟环境
  2. 确认dotenv对 Python 不可用
  3. 确认不在dotenv_ _requirements.txt
  4. 使用安装包pip install -r requirements.txt
  5. 确认dotenv Python 可用
  6. 确认dotenv未列出_pip freeze

这怎么可能?

0 投票
1 回答
262 浏览

node.js - dotenv 不适用于 root 权限

我正在运行一个使用create-react-app. 我想让它在端口上运行80,所以我添加了一个.env包含内容的文件

当我跑步时npm start,我得到

但是当我运行时sudo npm start,应用程序在端口上启动3000

为什么.env当我使用 运行时我的文件会被忽略,我sudo该如何解决这个问题?

编辑:这个问题不是关于如何在我运行时保留我当前的环境变量sudo。这个问题是关于 的行为.env,以及为什么在运行时它不起作用sudo

有趣的是,当我使用 su 时,例如。

它在端口 80 上运行。

为了完全清楚,我想知道如何在80不通过命令传递端口的情况下在端口上运行我的应用程序,即sudo PORT=80 npm start. 我相信这就是.env问题的全部意义所在。

0 投票
1 回答
2364 浏览

node.js - 我遗漏了一些关于 .env 的内容,你能给我解释一下吗?

我有一个非常基本的需求:根据环境为我的 API 存储不同的端点。假设一个简单的文件是这样的:

对于我的产品环境,它应该变成:

我也想要一个集成测试和一个 uat 端点!

看着我的 package.json 我看到:

所以我的想法是:

  1. 将命令行参数放在“build”和“start”附近,以便指定本地和生产环境文件
  2. 有办法在我的应用程序中访问所述配置,比如 config.API_URL

现在,我来自 Spring Boot,在 Spring Boot 中,每个环境都有一个文件。

我虽然 dotenv 可能是我的解决方案,但我在他们的网站上看到了两件奇怪的事情:

  1. 请不要提交您的 .env 文件 --> 那么,我的同事应该如何构建我的应用程序?我通常至少推送本地和测试环境,同时将uat和生产文件直接保存在服务器下
  2. 你应该只有一个 .env 文件 --> 好的,这个文件毁了我:如果我只有一个文件,我应该如何处理多个环境???

我在这里想念什么?你能帮我解决我的问题吗?我是 npm 的新手,所以我有点困惑......

0 投票
1 回答
3869 浏览

reactjs - 如何使用 Firestore 为 Firebase Deploy 定义特定的 .env 文件

所以基本上我想将我的开发 Firestore 数据库与我的部署分开。

我创建了 2 个 Firebase 项目:

  • 我的应用开发
  • 我的应用程序产品

我还创建了 2 个 .env 文件:

  • .env.development
  • .env.production

Firebase 托管工作正常,因为我正在使用,firebase use然后我选择托管代码的那个。问题在于 Firebase FireStore。由于它们都是 Firebase 项目,因此在部署时,它们被视为生产。

那么有没有一种方法可以让我对 Firebase 说一个项目是用于开发或暂存目的?或者有没有办法强制我的 .env.development 文件部署到 Firebase?

0 投票
2 回答
266 浏览

node.js - 您可以在 .env 文件的变量中分配多个参数吗?

我想创建一个新变量并在其中使用 2 个参数。我怎样才能做到这一点?我有 newPerson 作为变量。该变量应包含用户标识和密码。任何人都可以帮忙吗?

0 投票
1 回答
3869 浏览

node.js - 在 `npm install` 之前用 dotenv 替换 .npmrc 中的 env 变量

我必须使用私有注册表中的一些包。因此,在我package.json的依赖项部分中,我有这样一行:

私有注册表需要身份验证,所以我必须.npmrc在我的项目中创建文件:

是的,我知道_authToken,但在我的情况下,使用用户名和密码更容易。

${MYCO_REGISTRY_USER}无论如何,在这里你可以看到两个 env 变量:${MYCO_REGISTRY_PASSWORD_BASE64}我必须在之前 npm install替换它们。我知道这个问题的非常简单的解决方案:将它们放入“全局”环境变量中,例如放入我的 .bash_profile (或您选择的任何终端配置文件)。但我不想将这样的变量保留在“全局”范围内,因为它们仅对当前项目很重要。我想做的是使用dotenv。我想.env在我的项目的根目录中创建一个文件:

我希望这个值替换我.npmrc的安装操作中的环境变量。但是当我尝试时,npm install我得到一个错误:Error: Failed to replace env in config: ${MYCO_REGISTRY_USER}。我能理解为什么会这样。可能是因为 npm.npmrc先读取值并尝试替换 env 变量并失败,因为此时它对 dotenv 一无所知。我的问题是如何处理它?

简短的摘要:

  1. 我不想将环境变量保留在终端配置文件中,而是想将它.env放在我项目中的文件中。

  2. 我必须先用 dotenv 替换文件中的env.npmrc变量 npm install

0 投票
0 回答
274 浏览

python - ValueError:在带有dotenv的windwos上嵌入了flaskenv的空字符

我正在尝试将烧瓶 dotenv 与 python-dotenv 一起使用,但我注意到 Windwos 10 存在问题。

Everyting 在 Mac、Linux 上运行良好,但在 Windows 上运行烧瓶应用程序时出现异常。

似乎问题出在文件上.flaskenv。如果我将文件重命名为.flaskenv_flaskenv则不再有异常,但未定义我的环境变量。我也尝试手动加载此文件,但没有任何成功。未_flaskenv加载。

0 投票
2 回答
367 浏览

python - 从另一个 python 脚本调用 settings.py

我有 .env 文件,我在其中添加了环境设置。我编写了“settings.py”,它读取 .env 文件并存储设置值。我想从 other_script.py 导入 settings.py。但我得到 None 作为价值。

我试图执行“settings.py”并返回一个值。另一方面,当我执行导入设置的 other_script 时,这些值变为 None 值。

设置.py:

其他脚本.py:

所以当我执行 other_script.py 时,键应该返回一个值。我想念什么?