2015-02-10 37 views
9

錯誤:NPM - 錯誤:指定的程序無法找到

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) 

系統:

  • OS:視窗8.1(64位)
  • 節點:v0.12.0
  • NPM:2.5.1

背景:

昨天我試圖啓動一個新項目。並試圖使用yeoman生成器generator-gulp-angular,並得到了一堆視覺基本錯誤。所以我安裝了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安裝
  • 嘗試了一些命令我發現node-gyp
  • 試圖設置msvs_version屬性爲東西
  • 重新啓動

該錯誤使我認爲某種編譯器出了問題。 但我不知道到底發生了什麼。所以我想了解什麼可能是問題的原因?我應該嘗試下一步修復錯誤?

如果需要添加任何信息,請告訴我。

+0

你嘗試刪除node_modules並重新安裝它(也許只有'NPM install'就可以了)?它發生在我身上,插件會在更新時破壞。順便說一句,在更新時,使用'npm -g update npm'(或者用'install'替換'update',我認爲它應該可以工作)。形成我的經驗,使用它不會在更新時破壞任何內容。 – 2015-02-10 15:19:34

+0

所以我嘗試了。現在也嘗試刪除nodejs,刪除node_modules,重新安裝nodejs,'npm install' - 仍然沒有骰子。 之後,我嘗試卸載nodejs,刪除node_modules。安裝nodejs x86並運行'npm install'。但是,當我嘗試使用吞嚥或任何東西時,我都會得到同樣的錯誤。 另外我卸載了'Microsoft Visual C++ 2010' - 因爲我讀了一些關於使用2010和2012並排的東西。之後,我不需要在執行'npm install'時指定'--msvs_version = 2013'。 – 2015-02-10 15:51:24

+0

剛剛完成卸載我的控制面板中的所有「微軟公司」的東西。還刪除了nodejs和python 3.4。刪除了所有全局node_modules並清除了緩存。在安裝nodejs之後,Visual Studio Express 2013 for Windows Desktop和我仍然遇到與我的應用程序相同的問題。有趣的是,我現在得到了一個吞嚥角度發電機的工作。這完美無瑕地開始了。不久將嘗試將我的項目拉到一個新的文件夾,並看看我可以從哪裏去。也許有一些隱藏的「緩存」或一些臨時文件仍然受到阻礙。 – 2015-02-10 20:32:55

回答

9

編輯(2015年4月2日):
Node-sass已經解決了這個問題。您可以安全地使用Node v0.12,只需確保安裝最新版本的Node-sass,並更新您的本地AND全球版Gulp(https://github.com/gulpjs/gulp/issues/873)。爲了存檔目的,我將保留下面的原始回覆。


卸載節點v0.12並安裝節點v0.10.28

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

你想要的.msi安裝

這解決了該問題對我來說。

顯然,它與節點上海社會科學院的問題將不會被固定,直到他們更新: https://github.com/sass/node-sass/issues/653

+2

我不認爲*降級*分類爲*修復* ... – 2015-02-10 20:07:45

+0

@RobertRossmann那麼唯一的選擇是等待節點sass升級到v2.0。 如果您現在需要_fix_您的工作流程,那麼您必須降級。 – 2015-02-10 20:54:46

+1

不錯!我剛剛完成了一個工作項目與一個破損項目的比較,並設法將問題縮小到'gulp-sass'('node-sass')。我正在檢查'gulp-ruby-sass',看看是否有幫助,直到我看到你的編輯!感謝破解案件! – 2015-02-10 22:03:15

相關問題