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 SDK
和Microsoft 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 SDK
, nodejs
等尝试了一堆命令,我仍然不完全明白,我仍然迷失。
我尝试过的几件事从我的头顶开始:
-
npm cache clean
- 删除了node_modules文件夹并运行npm install
- 尝试了一些我用
node-gyp
find的命令 - 试图设置
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