请问为什么会出这个问题,install,uninstall, help这些都是可以运行的
按理说不是内部或外部命令这个提示的原因不就是在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'
删除了,问题得到解决,也证实了正是因为执行的这行命令导致报错
这个结论。但是不知道这样会留下什么问题,毕竟别人的有这段就没这个问题,所以还是想弄清楚,还望知道的朋友指教一下,非常感谢
------------------------------------------结贴-----------------------------------------------
请教了一些朋友,结论是应该是系统的问题,下面总结下。
'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我之前就重装过,重装之前也是这个提示,也间接说明应该是系统本身的问题,好了,以后重装系统再看看。