2013-09-30 22 views
1

我們已經使用play!framework 2.0.4一年了,現在有SASSsass插件發揮作用!framework 2.0.4拋出錯誤

我們得到了一個新的項目成員,他從sass得到一個非常奇怪的錯誤。

Sass compiler: ruby.exe: No such file or directory -- d:/workspace/our-project/sass (LoadError) 

計算機正在運行Windows 7

我可以告訴你,我們與紅寶石的問題爲好。

由於某種原因irb命令失敗。但是,我們固定它通過改變HOME環境變量從%USERPROFILE%c:\Users\name

我已經看到了谷歌羣體這個問題太值,但沒有一個解決方案

https://groups.google.com/d/msg/play-framework/j1npLLQlj1o/POOlePhJv1QJ

我怎樣才能解決這個問題?

回答

0

對於大家誰遇到這個問題,需要一個工作變通,這裏是我們發現

錯誤Sass compiler: ruby.exe: No such file or directory -- d:/workspace/our-project/sass (LoadError)意味着紅寶石正在尋找一個文件(不是文件夾)命名sass在項目根目錄下。其原因尚不清楚,如果有人能夠貢獻,仍然需要解釋。

sass文件是一個紅寶石文件,應該存在於c:\Ruby187\bin\sass基本上是sass插件紅寶石代碼的文件。

因此,一個快速解決此問題的方法是將複製該文件放在您的根目錄下。

這解決了我們。

我仍然需要一個解釋,爲什麼這首先發生。

3

我從來沒有去過很多補丁或變通的粉絲,所以我會盡我所能來分析是怎麼回事就在這裏:

該劇框架是沒有什麼興趣的此基於錯誤您在上面的帖子中突出顯示的消息,因此我們將從此處開始。

我們有sass編譯器正在調用ruby,它抱怨加載錯誤。很公平。乍看之下,由於ruby.exe錯誤信息,人們會認爲應該指責ruby配置。然而,我們發現它確實在尋找一個文件,即sass.bat,所以我好奇的目光把我帶到那裏。

因此,我們發現,該批處理文件包含以下內容:

1 @ECHO OFF 
2 IF NOT "%~f0" == "~f0" GOTO :WinNT 
3 @"ruby.exe" "C:/Ruby193/bin/sass" %1 %2 %3 %4 %5 %6 %7 %8 %9 
4 GOTO :EOF 
5 :WinNT 
6 @"ruby.exe" "%~dpn0" %* 

所以在這個腳本6個命令行,不算太糟糕。通過檢查,我注意到第2行有一個if條件,它依賴於正在執行的所有參數或全名。在Windows 7上測試時,這種情況似乎被認爲是錯誤的,所以我們總是在第6行結束。這個問題的關鍵是在Windows上運行Ruby的機器。基本上,我們有一個「跳轉子程序」或GOTO指令來在腳本中打WinNT,所以我們在當前目錄中尋找sass.bat,從而產生你當前的錯誤。

這裏的瘦:您可以通過

REM IF NOT "%~f0" == "~f0" GOTO :WinNT 

發表意見,如果條件在sass.bat文件的第二行,或者你可以讓6號線相同的3行進行修改後,您頂嘴編譯器會知道在哪裏可以找到Ruby SASS。

我喜歡windows,但這在OS X上並不是問題,因爲預裝了Ruby。有些人試圖爲ruby/sass創建別名,但問題的根源不是PATH環境變量。

在我的示例中,Ruby安裝在C:使用1.93版本上,但同樣適用於包括v2在內的所有最新版本。

我希望這有助於!

+0

高超的回答,我花了很多時間在解決這個問題上比最後這個解決方案的工作 –

0

這似乎不適用於使用litola sass-plugin 0.4.0播放2.3.x。如果我將sass目錄放在我的項目中。目標/ scala-2.11/classes/public/xxx下的輸出css文件全部爲0大小。 有什麼建議嗎?仍在調查。

已達到解決方案,無需將sass窗口腳本複製到工作區中。 這個插件的工作原理:https://github.com/ShaggyYeti/sbt-sass玩2.3.x. QED