![](/img/trans.png)
[英]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.