我对nodejs完全不熟悉。我试图让nodejs在我的Windows 2008盒子上工作,以安装Karma,我将用于TDDing我的AngularJs代码。到目前为止,我已经完成了以下步骤

Install using Chocolatey ==> npm is not recognised Install using 64-bit nodejs installer from nodejs.org ==> npm is not recognised At this stage, running where npm gives me c:\User\<Username>\AppData\Roaming\npm which has nothing in it I figure out that nodejs is installed in C:\Program Files\nodejs. Opening a command prompt in this directory makes npm work fine. So I added C:\Program Files\nodejs to PATH only to get the same error again that npm is not recognized One of the github issues on nodejs repository says that I need to restart the machine and it would fix. But that has not helped so far I do see a Node.js icon in my Start -> Programms mennu which takes me to nodejs console but not sure what to do with that.

在这个过程中,我是否错过了任何重要的步骤?

Edit

我发现如果我从程序文件中打开“Nodejs命令提示符”,那么npm是可以识别的。如何让它在正常的命令提示符下工作?

Edit

在node之后,我开始在另一个应用程序中遇到类似的问题。我在超级用户上发布了这个问题,正如被接受的答案所正确指出的那样,我在我的PATH中有一个额外的引用,这导致了引用后添加的所有路径出现问题。我有一种感觉,一些Chocolatey安装添加了这句令人不安的引用,但我只是不确定是哪一个。


当前回答

我遇到了完全相同的问题,并注意到在安装node.js后,在用户变量部分的path中有一个新的路径条目,其值为> c:\ user \AppData\Roaming\npm。此外,系统变量中的Path条目还附加了——> C:\Program Files\nodejs.现在因为用户变量优先于系统,你有两个选项来解决这个问题。从user变量中删除路径或更正正确的路径(C:\Program Files\nodejs)。重新启动CMD,它应该工作。

其他回答

添加:

;C:\Program Files\nodejs\

在“系统属性”的“环境变量”的“用户变量”部分的路径变量的末尾。

之后,重新打开命令提示符并键入

npm

这应该有用。

我用一个新的答案更新了这个帖子,因为我在不少于一周的时间里找到了解决我痛苦处境的方法……

对于那些仍然遇到错误,即使他们的路径值设置正确,检查你的paextt变量的值(默认值在windows 7 +): .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

我只设置为:. bat,改变它就解决了问题。我想知道为什么没有人提起这件事…

希望这能有所帮助!

通过命令查看npm config:

npm config list

它需要属性:“prefix”,全局“prefix”和“node bin location”。

; userconfig C:\Users\username\.npmrc
cache = "C:\\ProgramData\\npm-cache"
msvs_version = "2015"
prefix = "C:\\ProgramData\\npm"
python = "C:\\Python27\\"
registry = "http://registry.com/api/npm/npm-packages/"

; globalconfig C:\ProgramData\npm\etc\npmrc
cache = "C:\\ProgramData\\npm-cache"
prefix = "C:\\ProgramData\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\WINDOWS\system32

在这种情况下,它需要将这些路径添加到环境变量PATH的末尾:

;C:\Program Files\nodejs;C:\ProgramData\npm;

好吧,在我的情况下,通过Mocha做测试,我尝试了一切,只是意识到我必须在package.json内的测试用例脚本标记周围删除单引号。

我在所有*.test.js文件上运行mocha测试用例,如下所示:

package.json

之前:

 "scripts": {
    "test": "mocha server/**/*.test.js",
    "test-watch": "nodemon --exec 'npm run test'"
  }

After(删除单引号- npm run test):

 "scripts": {
    "test": "mocha server/**/*.test.js",
    "test-watch": "nodemon --exec npm run test"
  }

对我有用,以防别人也被困在这事上。

对于Windows用户:一张图片胜过千言万语

参考:npm不能识别为内部或外部命令(注:这是我自己的博客)