不能安装我自己的npm包

我一直在开发一个将Node作为CLI工具的开源项目。 CLI本身工作的很好我只需要testing它是否在另一个项目上工作,所以为了我在全局npm install -g项目npm install -g没有错误,但是对于我来说,我不能使用CLI。

我得到以下错误:

节点命令不起作用

奇怪的是目录和文件确实存在于全局npm文件夹中:

目录存在

这是项目的package.json

的package.json

我不理解如何使npm /节点CLI工作? 我错过了什么?

编辑1:

这是我的index.js文件:

index.js文件

这是commander.js文件:
command.js文件

编辑2:

在@AngYCbuild议testing项目build议后,我可以成功地使用testingcli,而检查差异,我发现这一点。 在C:\Users\Ivan\AppData\Roaming\npm中,这两个项目的.cmd是完全不同的:

在这里输入图像描述

编辑3(解决scheme):

在摆弄之后,我发现真正需要shebang( #!/usr/bin/env node )的文件只是index.js文件,而不是commander.js文件。 删除该文件中的shebang解决了这个问题

您可能想尝试link您的本地软件包link到您的全局可执行文件列表。

https://docs.npmjs.com/cli/link

所有你需要做的就是在你的工具所在的文件夹中运行npm link ,它应该使命令全局可用。

尝试卸载cli run npm rm -g clisudo npm rm -g cli 。 然后运行: npm install cli -g

如果问题仍然存在,你可能想要全局删除你的npm包,可能会有一些冲突的事情在运行。

键入: %appdata% (在资源pipe理器,运行提示或开始菜单中)。

您可以通过删除以下内容简单地删除所有全局安装的npm包:

C:\Users\username\AppData\Roaming\npm

那么你可能也想清除所有你的caching运行npm cache clear或者npm cache clear --force视情况而定。

然后,重新安装全局安装的所有软件包。

如果问题仍然存在,请检查以下内容:

运行npm root -g ,会产生C:\Users\<username>\AppData\Roaming\npm\node_modules ,甚至您应该检查您的path,也许可执行的二进制文件和.cmd文件最终位于C:\Users\<username>\AppData\Roaming\npm而不是C:\Users\<username>\AppData\Roaming\npm\node_modules ,您将需要将该path添加到PATH环境。 variables。

我希望这能解决你的问题。