Как использовать переменные среды или маскировать секреты в пакете. json? - PullRequest
2 голосов
/ 26 февраля 2020

Вот выдержка из моего 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. Что я хочу знать, так это то, как лучше всего работать с username:password частью сценария migrate_dev?

(И я взглянул на this , но Я почти уверен, что не могу использовать .js файл в качестве package.json замены.)

Я попытался присвоить переменные окружения переменным окружения, например,

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

но, к сожалению, они не определены на данный момент - #bootstraps! ;-)

1 Ответ

1 голос
/ 26 февраля 2020

Как использовать переменные среды или секреты маски в пакете. json?

Я исключаю мой файл .env в .gitignore, чтобы мои секреты не попали в git repo.

Поскольку ваши секреты находятся в вашем файле .env, к ним можно получить доступ только программно, а package.json не не имеет такую ​​возможность самостоятельно. Для этого потребуется файл .js.

Вы можете запустить файл .js (т. Е. migrate_dev.js) из сценария migrate_dev:

"migrate_dev": "node migrate_dev.js"

Внутри migrate_dev.js вас должен иметь доступ к вашему .env файлу и API node-pg-migrate Programmati c (его CLI-эквивалент для JS):

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...