为什么npm不尊重用户/全球npmignore?

时间:2012-09-21 16:47:33

标签: windows npm

我的编辑器生成工作区文件和备份文件夹,这些文件和备份文件夹对我写的软件用户不感兴趣。为了避免在每个项目中列出我特定于编辑器的忽略,我试图告诉npm在用户或全局级别忽略它们。

不幸的是,我没有运气这样做。在我的项目文件夹中运行npm pack,即使我先清除npm缓存,也包括工作区文件和 2兆字节的备份文件。 (对于只有 10千字节代码的项目!)我尝试过ignore配置设置,每用户.npmignore和全局npmignore一切都没有效果。

以下是npm config ls -l的输出,剪切到相关部分:

; userconfig C:\Users\benblank\.npmrc
ignore = "__history *.epp"

; builtin config undefined
prefix = "C:\\Users\\benblank\\AppData\\Roaming\\npm"

; default values
globalignorefile = "C:\\Users\\benblank\\AppData\\Roaming\\npm\\etc\\npmignore"
userignorefile = "C:\\Users\\benblank\\.npmignore"

C:\Users\benblank\.npmignoreC:\Users\benblank\AppData\Roaming\npm\etc\npmignore的相同内容:

__history
*.epp

我做错了什么?我正在运行Windows 7,node @ 0.8.9和npm@1.1.61。

1 个答案:

答案 0 :(得分:2)

npm有一些与npmignore文件相关的主要outstanding issues

谢天谢地,有一个更好的选择!它是package.json files属性。

以下是我delivr项目的一个示例。

"files": [
  "lib",
  "index.js"
]

为什么会更好?

  1. 内部机械使这种机制更可靠。
  2. 这是白名单而不是黑名单。通常,假设您使用lib文件夹(或类似文件夹),您希望包含的文件/目录少于您希望排除的文件/目录,因此它更多简洁。
  3. DRY。如果存在.npmignore文件,npm将不会向.gitignore咨询忽略模式,这通常需要重叠和重复的信息。白名单不存在此问题。
  4. 回购中少了一个文件。 package.json已经是一个定义你的软件包的清单,这对于这种配置来说很有意义。