我有一个 node_package bookiza(全局安装),它使用从 .rc 文件中取出的凭据将值发布到接收基板。
我目前将.rc
文件保存在模块本身中, at usr/lib/node_modules/bookiza
,但我可以在任何我喜欢的地方这样做。将其存储在包中的问题是,每当用户npm i -g installs
再次更新包时,设置都会被覆盖。
function updateBookizaConfig(res) {
var bookizaConfig = JSON.parse(fs.readFileSync(path.join(__dirname, '..', '.bookizarc')).toString());
bookizaConfig.token = res.body.key;
bookizaConfig.username = res.body.username;
bookizaConfig.email = res.body.email;
fs.writeFileSync(path.join(__dirname, '..', '.bookizarc'), JSON.stringify(bookizaConfig, null, 2));
// Move or copy the config file outside of package to retain credentials upon package update.
// cp('-R', path.join(__dirname, '..', '.bookizarc'), path.join(__dirname, '..', '..'));
console.log(chalk.bold.cyan('Registration successful'));
}
这可行,但请注意该.dotfile
文件保存在usr/lib/node_modules/
目录中,作为安装在机器上的其他全局包的兄弟。现在我也可以将设置文件放在机器上的其他任何地方,但是这样做的好习惯/标准方法是什么?
将设置文件放在一个usr/lib/node_modules/dots
文件夹中对我来说会更好吗?将来其他包编写者也可能会放置他们的 .rc 文件?