不能安装我自己的npm包
我一直在开发一个将Node作为CLI工具的开源项目。 CLI本身工作的很好我只需要testing它是否在另一个项目上工作,所以为了我在全局npm install -g
项目npm install -g
没有错误,但是对于我来说,我不能使用CLI。
我得到以下错误:
奇怪的是目录和文件确实存在于全局npm文件夹中:
这是项目的package.json
:
我不理解如何使npm /节点CLI工作? 我错过了什么?
编辑1:
这是我的index.js文件:
这是commander.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 cli
或sudo 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。
我希望这能解决你的问题。