无法安装我自己的npm包

时间:2017-11-06 03:26:31

标签: javascript node.js npm

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

我收到以下错误:

node command not working

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

directory exists

这是项目的package.json

package.json

我不明白如何使npm / node CLI工作?我错过了什么?

编辑1:

这是我的index.js文件:

index.js file

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

编辑2:

在创建一个测试项目后,@ AnghC建议我可以成功使用测试cli,同时检查差异,我发现了这个。在C:\Users\Ivan\AppData\Roaming\npm内,两个项目的.cmd完全不同:

enter image description here

编辑3(解决方案):

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

2 个答案:

答案 0 :(得分:1)

您可能希望尝试将link本地程序包添加到全局可执行文件列表中。

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

您只需在获得工具的文件夹中运行npm link即可在全局范围内使用该命令。

答案 1 :(得分:0)

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

如果问题仍然存在,您可能希望全局删除npm包,可能会出现一些冲突的事情。

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

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

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

然后,您可能还想清除所有缓存运行npm cache clearnpm cache clear --force,视情况而定。

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

如果问题仍然存在,请检查:

当您运行npm root -g时,它会产生C:\Users\<username>\AppData\Roaming\npm\node_modules,或者甚至,您应该检查您的路径,也许可执行二进制文件和.cmd文件最终会在C:\Users\<username>\AppData\Roaming\npm而不是C:\Users\<username>\AppData\Roaming\npm\node_modules {1}},您需要将该路径添加到PATH环境中。变量

我希望这可以解决您的问题。