Gav*_*vin 7 command-line-interface node.js npm
我会尽量保持这个问题的简短,但请分为两部分,请:
假设我编写了一个node.js CLI工具,例如,抓取今天的天气并在终端中显示它.我叫它weather-getter.注意,主要目标不是以编程方式调用,而是像BASH一样输入终端.它旨在通过在全局安装后键入其简单名称或通过用户的local/bin中的目录来运行.(安装时不需要Sudo.)
该项目将通过npm正常安装.它可以通过以下参数接收邮政编码:
gavin@localhost:~$ weather-getter -z "12345"
Run Code Online (Sandbox Code Playgroud)
好的程序运行正常.我的下一步是允许用户在某处保存配置文件,并从该配置文件中提取默认值.类似于.vimrc文件.此配置可能如下所示:
{
"zipcode": "12345",
"language": "en",
"unit": "fahrenheit"
}
Run Code Online (Sandbox Code Playgroud)
我想它应该以点开头.我还假设它应该位于npm模块安装中,而不是〜/.或者我应该考虑像许多其他程序一样使用〜/或/ etc /或〜/ .config或〜/ .local?节点程序是否应该尝试使用公共目录,例如〜/ .config/node /或〜/ .config/npm /?如果文件在那里,它应该在没有点的情况下开始吗?
注意:我的问题不是关于使用node.js读取/写入文件,而是关于配置位置和命名约定的建议.谢谢!
由于这是安装在系统路径中的通用CLI应用程序(仅在Node.js中实现),因此应遵循为目标操作系统建立的最佳实践或规则.
按优先顺序,这些将是(但不限于):
~ (用户的主文件夹) - 许多程序在其主目录中存储用户级配置,通常在带点前缀的文件中,后跟应用程序的名称(或类似) - 即 ~/.weather-getter
/usr/local/etc,/etc- 系统级配置文件.这些应该通常适用于系统中的所有用户,因此应该优先于主文件夹中的设置.这两个etc路径之间的区别通常是前者用于用户安装的程序,而后者用于系统级程序(对于使用Homebrew的 Mac用户尤其如此).但是,这种区别并不总是得到尊重,因此应检查两个位置的配置文件(最好是/etc目录的优先级较低).
应用程序的根目录 - 这些应该是应用程序的默认设置,当找不到用户或系统配置时,这是一个回退.
如果需要,可以考虑其他位置.
%APPDATA%如果您的应用程序允许GUI或至少CLI配置管理,或者Windows注册表(例如,使用winreg),这通常位于目录中的某个位置.我个人对Windows开发/ CLI没什么经验,所以我欢迎任何有关此主题的进一步评论或答案.我相信使用用户的homefolder也是可以接受的,只要该文件可以被标记为隐藏(因此它不会使视图混乱).
有关dotfiles的更新
某些文件或文件夹以点为前缀的原因是将它们隐藏在用户的普通视图中(即通过GUI浏览其主目录时).因此,在将配置文件存储在用户正常操作的目录中时,通常会使用以前缀为前缀的文件/文件夹名称,但在将配置文件存储在系统级文件夹中时则不这样做.
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |