如何在赛普拉斯运行的浏览器中使用 process.env 变量
Posted
技术标签:
【中文标题】如何在赛普拉斯运行的浏览器中使用 process.env 变量【英文标题】:How to use process.env variables in browser running by Cypress 【发布时间】:2020-01-09 02:32:11 【问题描述】:在我的应用程序的源代码中(基于 create-react-app 的 React)我正在使用如下环境变量:process.env.REACT_APP_API_URL
,它们存储在我的 .env.*
文件中。
但是当我在 Cypress 下运行相同的应用程序时,process.env
对象是空的。当 React 应用程序在 Cypress 下运行时,如何提供这些变量以供其使用?
我知道我可以设置 Cypress 环境变量,但这不是我想要的 - 这是一个不同的范围。
【问题讨论】:
【参考方案1】:您可以使用configuration API 并在您的插件文件上执行类似的操作。设置config.env = process.env
,这会将您的整个节点环境设置为Cypress
。
// cypress/plugins/index.js
module.exports = (on, config) =>
// modify env value
config.env = process.env
// return config
return config
您还可以使用config.env.YOUR_VAR = process.env.YOUR_VAR
选择性地分配您想要的值。
【讨论】:
操作员询问如何在 Cypress 中设置process.env
变量。这个答案说如何使用process.env
变量来设置赛普拉斯环境变量,不是吗?我错过了什么?
你需要先安装dotenv
并在cypress/plugins/index.js
文件顶部导入require("dotenv").config();
btw dotenv 不是必需的以上是关于如何在赛普拉斯运行的浏览器中使用 process.env 变量的主要内容,如果未能解决你的问题,请参考以下文章