如何在package.json中重命名.env变量?



我有什么

我有多个项目使用Percy for Cypress,我在.env文件中设置了PERCY_TOKENenv变量。每个项目的令牌是不同的。在CI中,我为每个项目设置了不同的环境变量,但在本地我必须在.env文件中这样做。因此,每当我在项目之间进行更改时,我都必须编辑.env文件。

我想在.env文件中这样设置它们:

PROJECT_A_PERCY_TOKEN=tokenhash1
PROJECT_B_PERCY_TOKEN=tokenhash2

因此,稍后我可以将这些变量重命名为PERCY_TOKEN,从而消除了不断更改.env文件的需要。

What I tried

我试图在package.json文件的scripts属性内做到这一点。不幸的是,echo $PROJECT_A_PERCY_TOKEN没有打印。我知道我可以创建一个shell/python/js脚本来解析.env文件,然后将值传递回去或直接调用npm run,但我想在没有外部脚本的情况下这样做。

在我看来,我无法访问package.json内部的环境变量。是否有一种方法来重命名变量只使用npm脚本?

br

如果你想配置的包有能力通过JavaScript文件进行配置,你可以在它的开头添加重命名:

process.env.PERCY_TOKEN = process.env.CYPRESS_PERCY_SALESFORCE_TOKEN;

虽然这不是我正在寻找的解决方案,但它是这个特定用例的变通方法。Percy支持JavaScript配置文件,所以我迁移了我的YAML配置文件,然后我记录了process.env.env文件的变量,所以我只需要复制正确的一个。这可能适用于其他支持JavaScript配置文件的包(或者其他可以放置自定义代码的钩子/预加载器),但如果它们不支持,那么问题仍然没有答案。

相关内容

  • 没有找到相关文章

最新更新