【问题标题】:Why is npm not honoring user/global npmignore?为什么 npm 不尊重用户/全局 npmignore?
【发布时间】:2016-12-28 12:14:41
【问题描述】:

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

不幸的是,我没有运气这样做。在我的项目文件夹中运行 npm pack,即使我先清除 npm 缓存,也包括工作区文件和 2 MB 的备份文件。 (对于只有 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。

【问题讨论】:

标签: windows npm


【解决方案1】:

npm 有一些主要的 outstanding issuesnpmignore 文件相关。

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

这是我的 delivr 项目中的一个示例。

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

为什么更好?

  1. 内部机制使这种机制更加可靠。
  2. 它是白名单而不是黑名单。通常,假设您使用lib 文件夹(或类似文件夹),您想要包含 的文件/目录比您想要排除 的文件/目录少,所以它更简洁。
  3. DRY。如果存在.npmignore 文件,npm 将不会咨询.gitignore 的忽略模式,这通常需要重叠和重复的信息。白名单不存在此问题。
  4. repo 中少了一个文件。 package.json 已经是定义您的包的清单,并且此配置存在于其中非常有意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2015-03-14
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多