繁体   English   中英

如何在 package.json 中使用环境变量或屏蔽机密?

[英]How do I use environment variables or mask secrets in 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",
  },

我在.gitignore排除了我的.env文件,以确保我的秘密不会泄漏到 git repo 中。 我想知道的是,处理migrate_dev脚本的username:password部分的最佳方法是什么?

(我已经看过这个,但我很确定我不能使用.js文件作为package.json替代品。)

我尝试将环境变量分配给环境变量,例如

"scripts": {
    ...
    "migrate_dev": "DATABASE_URL=DEV_DB_URL NODE_ENV=dev node-pg-migrate",
    ...
  },

但是,遗憾的是,目前还没有定义它们 - #bootstraps! ;-)

如何在 package.json 中使用环境变量或屏蔽机密?

我在 .gitignore 中排除了我的 .env 文件,以确保我的秘密不会泄漏到 git repo 中。

因为你的秘密在你的.env文件中,它们只能以编程方式访问,而package.json本身没有这种能力。 这将需要一个.js文件。

您可以从migrate_dev脚本运行.js文件(即migrate_dev.js ):

"migrate_dev": "node migrate_dev.js"

migrate_dev.js您应该可以访问您的.env文件和node-pg-migrate的 Programmatic API(它的 CLI 等效于 JS):

https://salsita.github.io/node-pg-migrate/#/api

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM