我'有一个node_package bookiza(全局安装),使用从.rc文件中获取的凭据将POSTS / PATCH值传递给接收基板。
我目前正在.rc
内部将usr/lib/node_modules/bookiza
文件保存在模块内部,但我可以随时随地保存。{I}}将其存储在包中的问题是,只要用户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文件会更好吗?
答案 0 :(得分:1)
评论中的用户已经找到了这个解决方案,但无论如何都在这里进行记录:
npm建议您将用户特定的配置数据保存在用户的主目录中,而不是保存在npm的模块目录中,因为它们不便于持久保存这些设置,并且因为它是多用户环境中的问题。
有许多模块可以跨平台方式找到用户的主目录,供您放入文件;我们喜欢https://www.npmjs.com/package/osenv