npm执行命令提示不是内部或外部命令

请问为什么会出这个问题,install,uninstall, help这些都是可以运行的

clipboard.png

按理说不是内部或外部命令这个提示的原因不就是在path里面没有找到吗,但是他又可以运行,而且install,uninstall这些功能完全没有问题,只是跟npm有关的命令都有这个提示,而且我path也没错,有点没想明白

----------------------------------------------------更新-------------------------------------------------------

npm.cmd如下:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)

SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

其中的'CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g',这个和图中的错误应该是一致的,正是因为执行的这行命令导致报错,但是我把一个朋友的npm.cmd,npm,npm-cli.js这三个文件和我的比较了,完全一模一样,说明不是文件出了问题,那应该是path的问题了,之前我只是感觉path没问题,这次我是把朋友的path也看了,真的没有区别。。

补充:后面我把'CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g'删除了,问题得到解决,也证实了正是因为执行的这行命令导致报错这个结论。但是不知道这样会留下什么问题,毕竟别人的有这段就没这个问题,所以还是想弄清楚,还望知道的朋友指教一下,非常感谢

阅读 12.1k
4 个回答

------------------------------------------结贴-----------------------------------------------

请教了一些朋友,结论是应该是系统的问题,下面总结下。

'CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g'这一行在npm.cmd起的作用是如果能运行这两个命令并且得到结果的话,那么就将NPM_PREFIX_NPM_CLI_JS的值设置为%%Fnode_modulesnpmbinnpm-cli.js"。翻译过来就是,他考虑到一般我们node下载下来npm是在nodejs根目录下的node_modules文件夹内,但是有的用户把npm安装到了node_global文件夹下,也就是手动全局安装的情况,基于这种情况,所有他进行了这样的配置。

现在我们清楚了他为什么这么设定了。至于提出的问题,即为什么会出现这个提示,确实应该是系统本身的问题,因为看上图我们知道单独调用CALL都是没问题的,而npm.cmd这个文件的内容我与大家也都是一样的,另外说下,node我之前就重装过,重装之前也是这个提示,也间接说明应该是系统本身的问题,好了,以后重装系统再看看。

目测你的环境变量写错了

新手上路,请多包涵

我的也是你这个问题,你的解决了吗 可以的话可以加个qq 362015972

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题