簡體   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