是否可以执行程序包选项而不必在package.json中显式声明它们?

时间:2018-08-12 11:53:17

标签: node.js npm

我不确定确切的术语来描述我的问题,但我想要的是不要在/usr/bin/composer 中公开我的凭据,例如,此软件包使用说明:

package.json

因此在我的node ./app.js | pino-mongodb [options] 中,如果我实现了它,它将像:

package.json

如何在不将凭据公开到git存储库的情况下处理此类软件包?

感谢您的建议。

样本包:https://github.com/pinojs/pino-mongodb

1 个答案:

答案 0 :(得分:2)

您可以使用环境变量,如下所示:

package.json

"start": "node ./app.js | pino-mongodb --username=${USERNAME} --password=${PASSWORD}"

设置环境变量后,从命令行调用它。一种简单的方法:

USERNAME=johndoe PASSWORD=secret666 npm run start

注意:在MacOS和Linux for Windows, see related question中可以正常使用。

如果您的环境变量存储在.env文件中,则可以使用source命令读取它们,如下所示:

package.json

"start": "source .env && node ./app.js | pino-mongodb --username=${USERNAME} --password=${PASSWORD}"