在Windows 7上运行"npm faq"失败(出现"spawn ENOENT"错误)

7
我已经使用最新的安装程序在Windows 7上安装了node.js。看起来它运行正常,我可以从控制台(cmd或PowerShell)中调用npm和node,但我一直收到错误提示。
这里有很多关于在Windows上使用node.js的问题,但它们都涉及到一些具体的代码。例如,对于许多简单的命令,例如yo,我会出现"spawn ENOENT"的错误提示,如果我选择“update generators”:
events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:988:11)
    at Process.ChildProcess._handle.onexit (child_process.js:779:34)

npm faq 都执行失败:

PS E:\www\something> npm faq
npm ERR! Error: spawn ENOENT
npm ERR!     at errnoException (child_process.js:988:11)
npm ERR!     at Process.ChildProcess._handle.onexit (child_process.js:779:34)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/isaacs/npm/issues>

似乎问题在于Node使用类Unix命令名称(如“dir”),而这些命令在Windows上不存在。一些博客文章提到使用Cygwin,但主要是用于构建Node.js,而不是调用它。官方 Node.js 网站也没有提到必须安装Cygwin。以下是 npm-debug.log 文件:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'faq' ]
2 info using npm@1.3.24
3 info using node@v0.10.25
4 verbose node symlink C:\Program Files\nodejs\\node.exe
5 error Error: spawn ENOENT
5 error     at errnoException (child_process.js:988:11)
5 error     at Process.ChildProcess._handle.onexit (child_process.js:779:34)
6 error If you need help, you may report this *entire* log,
6 error including the npm and node versions, at:
6 error     <http://github.com/isaacs/npm/issues>
7 error System Windows_NT 6.1.7601
8 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "faq"
9 error cwd E:\
10 error node -v v0.10.25
11 error npm -v 1.3.24
12 error syscall spawn
13 error code ENOENT
14 error errno ENOENT
15 verbose exit [ 1, true ]
1个回答

4

请确保在您的“Path”系统变量中包含 c:\Windows\System32。我曾经遇到过这个问题,这是我需要的解决方法。可能是我在过去不小心将其删除了。


1
我在我的Path系统变量中有c:\Windows\System32,但它是第二个。当我把它放在第一位时,一切都正常了!谢谢! - Ella Sharakanski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接