npm – 错误:无法find指定的程序

错误:

module.js:347 ' for module ' + JSON.stringify(this.id)); ^ Error: The specified procedure could not be found. c:\Users\Artur\workspace\xxx\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64\binding.node at Error (native) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (c:\Users\Artur\workspace\xxx\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:211:15) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) 

系统:

  • 操作系统 :Windows 8.1(64位)
  • 节点 :v0.12.0
  • npm :2.5.1

背景:

昨天我试图开始一个新的项目。 并尝试使用yeoman发生器generator-gulp-angular并得到了一堆的视觉基本错误。 所以我安装了Microsoft Windows SDKMicrosoft Windows SDK的其他一些东西。 所以现在我在安装的应用程序列表中有很多微软条目,当我看到这些时,我迷失了方向:

 These might be relevant for the problem: Microsoft Visual C++ x64 Libraries Microsoft Visual C++ x86 Libraries Microsoft Visual C++ 2005 Redistributable Microsoft Visual C++ 2005 Redistributable Microsoft Visual C++ 2005 Redistributable Microsoft Visual C++ 2005 Redistributable (x64) Microsoft Visual C++ 2005 Redistributable (x64) Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4148 Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161 Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148 Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4974 Microsoft Visual C++ 2010 x64 Redistributable - 10.0.40219 Microsoft Visual C++ 2010 Express - ENU Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.61030 Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.61030 Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.61030 Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.61030 Microsoft Visual C++ 2013 32bit Compilers - ENU Resources Microsoft Visual C++ 2013 Core Libraries Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.21005 Microsoft Visual C++ 2013 x64 Debug Runtime - 12.0.21005 Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.21005 Microsoft Visual C++ 2013 x86 Additional Runtime - 12.0.21005 Microsoft Visual C++ 2013 x86 Debug Runtime - 12.0.21005 Microsoft Visual C++ 2013 x86 Minimum Runtime - 12.0.21005 Microsoft Visual C++ 2013 x86-x64 Compilers Microsoft .NET Framework 2.0 SDK (x64) - ENU Microsoft .NET Framework 4 Multi-Targeting Pack Microsoft .NET Framework 4.5 Multi-Targeting Pack Microsoft .NET Framework 4.5 SDK Microsoft .NET Framework 4.5.1 Multi-Targeting Pack Microsoft .NET Framework 4.5.1 Multi-Targeting Pack (ENU) Microsoft .NET Framework 4.5.1 SDK 

我不知道我真的需要/不需要什么,或者是否有任何冲突。

我昨天没有得到任何工作,所以我就在那里完成。

所以今天我发现我有一个老版本的npm(1.4.28),并将其升级到版本2.5.1。 我刚刚从nodejs.org下载了一个新的x64安装程序。

之后,一切都被打破了。 我甚至不能运行gulp serve来启动我现有的/正在运行的应用程序。 几个小时,我试图下载/修复/卸载/安装Windows SDKnodejs等尝试了一堆命令,我仍然不完全明白,我仍然迷失。

我尝试过的几件事从我的头顶开始:

  • npm cache clean
  • 删除了node_modules文件夹并运行npm install
  • 尝试了一些我用node-gypfind的命令
  • 试图设置msvs_version属性
  • 重新开始

这个错误让我觉得某种编译器有些问题。 但是我不知道到底发生了什么。 所以我想知道可能是什么原因的问题? 我应该尝试下一步修复错误?

如果有任何补充信息需要让我知道。

编辑(2015年4月2日):
Node-sass已经解决了这个问题。 您可以安全地使用Node v0.12,只需确保安装最新版本的Node-sass,并更新您的本地AND全球版Gulp( https://github.com/gulpjs/gulp/issues/873 )。 为了存档目的,我将保留下面的原始答复。


卸载Node v0.12并安装Node v0.10.28

http://nodejs.org/dist/v0.10.28/

您将需要.msi安装程序

这为我解决了这个问题。

显然这是node-sass的问题,在更新之前不会被修复: https : //github.com/sass/node-sass/issues/653