【问题标题】:npm - Error: The specified procedure could not be foundnpm - 错误:找不到指定的过程
【发布时间】:2015-04-10 16:22:13
【问题描述】:

错误:

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 条目,当我看到这些时我迷失了:

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-gyp找到的命令
  • 试图将msvs_version 属性设置为something
  • 重启

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

如果需要任何补充信息,请告诉我。

【问题讨论】:

  • 您是否尝试删除 node_modules 并重新安装它(也许只有npm install 可以解决问题)?我碰巧插件会在更新时中断。顺便说一句,更新时,请使用npm -g update npm(或将update 替换为install,我认为它应该可以正常工作)。根据我的经验,在更新时使用它并没有破坏任何东西。
  • 所以我试过了。现在还尝试删除 nodejs,删除 node_modules,重新安装 nodejs,npm install - 仍然没有骰子。之后我尝试卸载 nodejs,删除 node_modules。安装 nodejs x86 并运行npm install。但是当我尝试使用 gulp 或任何东西时,我仍然会遇到同样的错误。我还卸载了Microsoft Visual C++ 2010 - 因为我读到了一些关于并排使用 2010 和 2012 的内容。之后我在做npm install时不需要指定--msvs_version=2013
  • 刚刚从我的控制面板卸载了所有“Microsoft Corporation”的东西。还删除了 nodejs 和 python 3.4。删除了所有全局 node_modules 并清理了缓存。在安装 nodejs、Visual Studio Express 2013 for Windows Desktop 之后,我的应用程序仍然遇到同样的问题。有趣的是,我现在让 gulp-angular-generator 工作了。这开始完美无缺。很快将尝试将我的项目拉到一个新文件夹中,看看我可以从那里去哪里。也许有一些隐藏的“缓存”或一些临时文件仍在阻碍。

标签: node.js npm


【解决方案1】:

编辑(2015 年 4 月 2 日):
Node-sass 已经解决了这个问题。您可以安全地使用 Node v0.12,只需确保安装最新版本的 Node-sass 并更新您的本地和全球版本的 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

【讨论】:

  • @RobertRossmann 好吧,唯一的选择是等待 node-sass 升级到 v2.0。如果您现在需要修复您的工作流程,那么您将不得不降级。
  • 不错!我刚刚完成了一个工作项目与一个损坏的项目的比较,并设法将问题缩小到gulp-sass (node-sass)。在我看到您的编辑之前,我正在查看gulp-ruby-sass 看看是否有帮助!感谢您破案!
  • @MisterOh 你是我的超级英雄 :)
猜你喜欢
  • 1970-01-01
  • 2018-01-26
  • 2013-01-31
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多