node_package 特定设置在客户端计算机上的何处存储?
Where to store a node_package specific settings on the client machine?
我有一个 node_package bookiza(全局安装),POSTS/PATCHes 使用从 .rc 文件中获取的凭据为接收基板赋值。
我目前将 .rc
文件保存在模块本身的 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/
目录中,作为机器上安装的其他全局包的兄弟。现在我也可以将设置文件放在机器上的任何其他位置,但是 practice/standard 这样做的好方法是什么?
将设置文件放在 usr/lib/node_modules/dots
文件夹中是否更好,将来其他包编写者也可能将他们的 .rc 文件放在该文件夹中?
评论里的网友已经想到了这个方案,不过还是记录一下:
npm 建议您将用户特定的配置数据保存在用户的主目录中,而不是在 npm 的模块目录中,这既是因为持久化这些设置不方便,也是因为它在多线程中存在问题用户环境。
有很多模块会以跨平台的方式找到用户的主目录,让你把文件放进去;我们喜欢 https://www.npmjs.com/package/osenv
我有一个 node_package bookiza(全局安装),POSTS/PATCHes 使用从 .rc 文件中获取的凭据为接收基板赋值。
我目前将 .rc
文件保存在模块本身的 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/
目录中,作为机器上安装的其他全局包的兄弟。现在我也可以将设置文件放在机器上的任何其他位置,但是 practice/standard 这样做的好方法是什么?
将设置文件放在 usr/lib/node_modules/dots
文件夹中是否更好,将来其他包编写者也可能将他们的 .rc 文件放在该文件夹中?
评论里的网友已经想到了这个方案,不过还是记录一下:
npm 建议您将用户特定的配置数据保存在用户的主目录中,而不是在 npm 的模块目录中,这既是因为持久化这些设置不方便,也是因为它在多线程中存在问题用户环境。
有很多模块会以跨平台的方式找到用户的主目录,让你把文件放进去;我们喜欢 https://www.npmjs.com/package/osenv