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

不幸的是,我没有运气。即使我先清除npm缓存,也要在项目文件夹中运行npm pack,它既包含工作区文件,又包含和两兆字节的备份文件。 (对于只有10 KB代码的项目!)我尝试了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和[email protected]

最佳答案

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

值得庆幸的是,还有更好的选择!这是package.json的files属性。

这是我的delivr项目的示例。

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

为什么会更好?
  • 内部机制使此机制更可靠。
  • 它是白名单而不是黑名单。通常,假设您使用lib文件夹(或类似文件夹),则要包含的文件/目录要比要包含的文件/目录少,因此更加简洁。
  • DRY。如果存在.npmignore文件,则npm将不向.gitignore查询忽略模式,这通常需要重叠和重复的信息。白名单不存在此问题。
  • repo 中少了一个文件。 package.json已经是定义您的程序包的 list ,并且使此配置存在此处很有意义。
  • 10-06 00:00