在加载.env文件以将 env 值传递给getToken.jscypress 根文件夹中的脚本时,会抛出无法找到模块 'dotenv' 错误。我已经安装了npm install dotenv. 有人可以告诉我在这里缺少什么吗?.env文件位于 cypress 根文件夹中。
环境:Windows 10 > git bash /命令提示符
const puppeteer = require("puppeteer");
require('dotenv').config({path: '.env'})
const baseURL = process.env.CYPRESS_BASE_URL
const testsUser = process.env.CYPRESS_TESTS_USERNAME
puppeteer
.launch({ headless: true, chromeWebSecurity: false, args: ['--no-sandbox'] })
.then(async browser => {
const page = await browser.newPage();
await page.goto(`${baseURL}/login`);
await page.waitFor(2000);
await page.waitForSelector("input[name=username]");
await page.type("input[name=username]", testsUser , {
delay: 50
});
browser.close();
});
Run Code Online (Sandbox Code Playgroud)
包.json
"scripts": {
"cy:run": "cypress run",
"get-token-main": …Run Code Online (Sandbox Code Playgroud) 我使用以下命令安装了 flutter_dotenv:
flutter pub add flutter_dotenv
Run Code Online (Sandbox Code Playgroud)
我的 pubspec.yaml 是这样的:
dependencies:
flutter:
flutter_dotenv: ^5.0.0
flutter:
assets:
- .env
Run Code Online (Sandbox Code Playgroud)
然后我将 .env 文件放入项目根目录中(稍后我将使用 .env.dev..env.prd,以便您在屏幕截图中看到它们):
我从 VSCode 运行项目然后得到 FileNotFoundError:

我检查了 .env 文件位置数百次,尝试更改文件名,将位置更改为 /lib 等 - 仍然没有运气。任何想法?
我在根文件夹文件中有.env 文件
NODE_ENV=development
NODE_HOST=localhost
NODE_PORT=4000
NODE_HTTPS=false
DB_HOST=localhost
DB_USERNAME=user
DB_PASSWORD=user
Run Code Online (Sandbox Code Playgroud)
并server.js在root/app/config/server.js文件夹中存档.第一行server.js文件是
require('dotenv').config();
我也试过以下:
require('dotenv').config({path: '../.env'});
require('dotenv').config({path: '../../.env'});
但是,当我server.js从命令提示符运行该文件时,我的env变量未加载
node root/app/config/server.js
如果我使用visual studio并按下F5,它会加载!
我不确定我做错了什么,我错过了什么.任何建议都非常感谢.谢谢.
我有一个.envDEV用于开发环境变量的文件名。
并且 VSCode 不将其识别为dotenv文件。
如果我更改文件的语言模式,它似乎可以工作(应用正确的样式,但图标不会改变)。但每当我关闭并重新打开文件时它就会消失。
我正在尝试为此设置自定义文件关联,但到目前为止尚未成功。
seetings.json
"files.associations": {
"*.envDEV": "dotenv" // DOES NOT WORK
"*.envDEV": ".env" // DOES NOT WORK
},
Run Code Online (Sandbox Code Playgroud)
有人知道怎么做这个吗?
file-type environment-variables file-association visual-studio-code dotenv
我正在尝试将我的测试从 jest 迁移到 vitest。我有一个测试套件,它使用 dotenv 包来提取我的 .env 变量。
我的测试套件中有这个
beforeAll(async () => {
vi.clearAllMocks();
cleanUpMetadata();
dotenv.config();
controller = new UserController(container.get<UserServiceLocator>(Symbol.for("UserServiceLocator")),
container.get<EmailServiceLocator>(Symbol.for("EmailServiceLocator")));
});
Run Code Online (Sandbox Code Playgroud)
这是测试中具有未定义变量的代码
let requestObj = httpMocks.createRequest({
cookies: {
token: jwt.sign({ username: "testusername" }, process.env.JWT_SECRET_KEY!)
}
});
Run Code Online (Sandbox Code Playgroud)
为了让我的 .env 变量可访问,我必须做一些特别的事情吗?
我正在尝试使用 express 框架构建 node.js 服务器,并且我想在我的服务器中存储管理 API 的私钥。
我现在使用 .env 文件来存储这些值,并在我的路由中通过调用 like 来使用这些值process.env.ADMIN_KEY。
问题
处理私人数据的方式安全吗?或者还有比这更好的方法?
我已经使用 TypeScript 编写了 Playwright 测试,并且想在测试文件中使用 .env 中的变量,我该怎么做?
我的.envNestJs 项目的根目录中有一个文件,其中包含一些 env 变量。
奇怪的是,我能够读取服务文件中的变量,但不能读取模块文件中的变量。
所以在像这样的服务文件中users.service.ts,这有效:
saveAvatar() {
const path = process.env.AVATAR_PATH // returns value from .env
}
Run Code Online (Sandbox Code Playgroud)
但是,当访问模块文件中的路径时,如auth.module.ts,这将返回一个空值:
@Module({
imports: [
JwtModule.register({
secretOrPrivateKey: process.env.SECRET // process.env.SECRET returns an empty string
})
]
})
Run Code Online (Sandbox Code Playgroud)
为什么呢?如何.env在 NestJs 中可靠地访问文件中的环境变量?
我正在尝试使用带角度的 dotenv,但是当涉及到需要 dotenv 时
require('dotenv').config()
or
const Dotenv = require('dotenv-webpack');
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
./node_modules/dotenv/lib/main.js 中的错误未找到模块:错误:无法解析 'C:\Users\57322\Favorites\Proyecto\core4edu\node_modules\dotenv\lib' 中的 'fs'
包.json
"dotenv": "^8.2.0",
"dotenv-webpack": "^1.7.0",
Run Code Online (Sandbox Code Playgroud) 我正在使用 dotenv 包。我有一个保存在 .env 文件中的密钥,但我将其更新为新密钥,但我的脚本仍然输出旧密钥。我的根目录中有“.env”文件。
我认为通过使用 load_dotenv() ,它可以及时获取新密钥(无论它们处于当前状态)并将其保存以在脚本中使用。我究竟做错了什么?
import os
from dotenv import load_dotenv
import praw
load_dotenv()
reddit = praw.Reddit(client_id=os.getenv('reddit_personal_use'),
client_secret=os.getenv('reddit_api_key'),
user_agent=os.getenv('reddit_app_name'),
username=os.getenv('reddit_username'),
password=os.getenv('reddit_pw'))
Run Code Online (Sandbox Code Playgroud) dotenv ×10
node.js ×3
javascript ×2
typescript ×2
angular ×1
api ×1
cypress ×1
express ×1
file-type ×1
flutter ×1
nestjs ×1
playwright ×1
praw ×1
puppeteer ×1
python ×1
python-3.x ×1
security ×1
vitest ×1