Reactjs 如何在package.json中使用环境变量或掩码机密?
以下是我的Reactjs 如何在package.json中使用环境变量或掩码机密?,reactjs,git,postgresql,environment-variables,package.json,Reactjs,Git,Postgresql,Environment Variables,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", }, 我将我的
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中。我想知道的是,处理migrate\u dev
脚本的username:password
部分的最佳方法是什么
(我已经看过了,但是我很确定我不能使用.js
文件作为包.json
替代。)
我尝试将环境变量分配给环境变量,例如
"scripts": {
...
"migrate_dev": "DATABASE_URL=DEV_DB_URL NODE_ENV=dev node-pg-migrate",
...
},
但是,遗憾的是,它们在这一点上还没有定义——#引导!#)
如何在package.json中使用环境变量或掩码机密
我将.env文件排除在.gitignore中,以确保我的秘密不会泄漏到git repo中
由于您的机密在.env
文件中,因此只能通过编程方式访问它们,而package.json
本身并不具备该功能。这需要一个.js
文件
您可以从migrate\u dev
脚本运行.js
文件(即migrate\u dev.js
):
"migrate_dev": "node migrate_dev.js"
在migrate\u dev.js
内部,您应该可以访问.env
文件和节点pg migrate
的编程API(其CLI等效于js):
您提到的秘密都在您的
.env
文件中,对吗?您可以使用现有的shell工具来处理这个问题。考虑由PACKAG.JSON触发的外部脚本,而不是试图在脚本块中全部匹配它。谢谢;-)事实上,我没有看到那页。。。事实证明,有一个-d选项用于指定数据库URL
环境变量!因此,我可以定义一堆.env
变量,并将它们硬编码到package.json
文件中,例如“migrate”:“node pg migrate”,“migrate_dev”:“node_env=dev node pg migrate-d dev_DB_URL”