[英]How to dynamically import package.json dependencies based on environment variables?
[英]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):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.