为什么我的 Node.js 包在全局安装时缺少主文件?

Why is my Node.js package missing the main file when installed globally?

这感觉像是一个令人尴尬的问题,但最近向 NPM 注册表发布了一个 Node 包,我现在发现它不起作用。

问题似乎是我的主文件 ./src/index.js 没有包含在全局安装中。

发现这一点后,我什至修补了 package.json 以确保 ./src/index.jsfiles 数组中明确列入白名单。我以前没有这样做过,因为 NPM guidance 指出 main 下列出的任何文件也自动列入白名单。但即使在 files 中明确包含该文件也没有用。

作为参考,我没有 .npmignore 文件。

我有一种可怕的感觉,我缺少一些简单和基本的东西...知道为什么我的主文件可能被跳过了吗?

包裹是diffcraft

如果你省略文件前面的 ./ 它会起作用(在 Windows 上用 npm 6.14.4 测试):

  "files": [
    "bin/cli.js",
    "src/index.js"
  ],

这可能是 npm 中的错误。

您可以在不通过 运行 npm pack 发布并检查存档文件的情况下进行检查。

备选方案是使用 .npmignore 文件。