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”