reactjs - 如何在 package.json 中使用环境变量或掩码机密?
问题描述
package.json
这是我的文件的摘录:
"scripts": {
"start": "cross-env NODE_ENV=prod npx ./bin/www",
"migrate": "node-pg-migrate",
"migrate_dev": "DATABASE_URL=postgres://username:password@localhost:5432/dev_db NODE_ENV=dev node-pg-migrate",
},
我将我的.env
文件排除在外,.gitignore
以确保我的秘密不会泄露到 git repo 中。我想知道的是,处理脚本username:password
部分的最佳方法是什么?migrate_dev
(我已经看过这个,但我很确定我不能使用.js
文件作为package.json
替身。)
我尝试将环境变量分配给环境变量,例如
"scripts": {
...
"migrate_dev": "DATABASE_URL=DEV_DB_URL NODE_ENV=dev node-pg-migrate",
...
},
但是,遗憾的是,此时尚未定义它们 - #bootstraps!;-)
解决方案
如何在 package.json 中使用环境变量或掩码机密?
我在 .gitignore 中排除了我的 .env 文件,以确保我的秘密不会泄漏到 git 存储库中。
因为您的机密在您的.env
文件中,所以只能以编程方式访问它们,并且package.json
它本身没有该功能。这将需要一个.js
文件。
您可以从脚本运行.js
文件(即migrate_dev.js
) :migrate_dev
"migrate_dev": "node migrate_dev.js"
在里面migrate_dev.js
你应该可以访问你的.env
文件和node-pg-migrate
's Programmatic API(它的 CLI 等效于 JS):
推荐阅读
- python - 将 pandas DataFrame 中每一行的最后一个非零值转换为 0
- unity3d - 如何判断一个对象是预制资产还是该预制的实例?
- go - 奇怪的 404 服务器错误 (ListenAndServeTLS)
- go - 内存中的数据以最小化数据库读取?
- python - Python 阶乘程序 - 打印方程
- python - 程序忽略“else”语句
- reactjs - 将数据从孩子传递给父母
- firemonkey - 如何检测何时重新打开iOS(Firemonkey)上在后台休眠的应用程序?
- json - SQL JSON 乘以交叉应用
- c# - C# - ASP.NET MVC 从表单获取数据到控制器,我得到一个空对象