在 npm global install 之后尝试使用软件包附带的命令时找不到模块 `dist/bin/x.js`

Cannot find module `dist/bin/x.js` when trying to use the command that comes with the package after npm global install

你做了 npm install -g aVeryCoolPackage,当你想在你的 shell 中使用 aVeryCoolPackage 的命令时,你会得到这样的错误:

Error: Cannot find module '/usr/local/lib/node_modules/aVeryCoolPackage/dist/bin/cli.js'
  at Function.Module._resolveFilename (module.js:469:15)
  at Function.Module._load (module.js:417:25)
  at Module.require (module.js:497:17)
  at require (internal/module.js:20:19)
  at loadAVeryCoolPackage (/usr/local/lib/node_modules/aVeryCoolPackage/bin/aVeryCoolPackage.js:30:3)
  at /usr/local/lib/node_modules/aVeryCoolPackage/bin/aVeryCoolPackage.js:44:5
  at LOOP (fs.js:1758:14)
  at _combinedTickCallback (internal/process/next_tick.js:67:7)
  at process._tickCallback (internal/process/next_tick.js:98:9)

在您 cd 进入 /usr/local/lib/node_modules/thePackage 后,您会惊讶地发现文件夹 dist 根本不存在。这很奇怪。您尝试了 npm uninstall -g aVeryCoolPackage,然后又尝试了 npm install -g aVeryCoolPackage,但是在尝试使用它的命令时您 运行 遇到了同样的问题。 github 上的其他人都没有 运行 解决这个问题。怎么回事?

在我的例子中,我从 github 克隆了 repo。我在与存储库所在的同一目录中执行了 npm install -g aVeryCoolPackage,因此它实际上安装了我的本地副本,其中包含 .gitignoredist 文件夹。结果,我在 /usr/local/lib/node_modules/aVeryCoolPackage/ 中没有 dist,并且每次尝试在其中 require 文件时都会抛出找不到模块错误。

有趣的事实:如果你 npm uninstall -g aVeryCoolPackagenpm install -g aVeryCoolPackage 在一个不存在存储库克隆的不同目录并因此修复它,你将不知道错误是如何产生的.这将成为节点开发中的谜团之一,有时您会遇到奇怪的错误,然后您就再也看不到它们了。