2011-10-22 22 views
2

如果我從安裝在的NuGet包SassAndCoffee.Core,然後問SassAndCoffee編譯一些的CoffeeScript,它似乎通過「裸」選項,將CoffeeScript的編譯器 - 即它不換我在CoffeeScript中的平常(function() {腳本}).call(this);書擋。SassAndCoffee使用'裸'選項編譯CoffeeScript。我可以控制這個嗎?

有沒有辦法讓我SassAndCoffee 不是使用「裸」選項?

注意:這是在桌面應用程序中,我明確調用了SassAndCoffee的代碼 - 這不是在ASP.NET網站中發生的魔術重寫。

更多細節:這是我的代碼,使用SassAndCoffee編譯CoffeeScript。

var sassCompiler = new CoffeeScriptCompiler(); 
var js = sassCompiler.Compile("alert 'Hello World'"); 

這導致以下的(裸)輸出在js變量:

alert('Hello World'); 

但是如果我寫一些簡單的JavaScript調用official CoffeeScript compiler默認選項,例如這個HTML文件(下降coffee-script.js到同一個目錄):

<script src="coffee-script.js"></script> 
<script> 
document.write("<pre>") 
document.write(CoffeeScript.compile("alert 'Hello World'")) 
document.write("</pre>") 
</script> 

我得到預期的,包裹的JavaScript輸出:

(function() { 
    alert('Hello World'); 
}).call(this); 

看起來SassAndCoffee呼籲CoffeeScript.compile(input, {bare: true}),而不是僅僅CoffeeScript.compile(input)

我想使用SassAndCoffee.Core其V8支持,但我希望能夠默認輸出和裸露輸出之間進行選擇。沒有重寫SassAndCoffee的CoffeeScript編譯器(這可能會擊敗使用SassAndCoffee)或者手動添加和附加包裝器代碼(我覺得編譯器應該做的工作很髒),有什麼方法可以獲得SassAndCoffee輸出非裸JavaScript?

回答

1

如果我讀這個權利,這似乎是由開發商一個明確的決定:

https://github.com/xpaulbettsx/SassAndCoffee/blob/43300b7805db8b3dccf20cc71d1282ecfd8c76e1/SassAndCoffee.Core/CoffeeScript/coffee-script.js

這也可能爲你提供你需要改變其修改爲您需要的文件。

作爲替代方案,如果您遇到問題,我用Mindscape Web Workbench作爲一個Visual Studio插件,似乎做的大部分東西似乎SassAndCoffee完成你。

+0

我實際上是想在運行時編譯CoffeeScript,而不是在IDE中,它看起來不像Mindscape Web Workbench讓我那樣做。儘管如此,最終的答案似乎是「不,現在沒有辦法讓SassAndCoffee輸出非裸JavaScript」,這與我從作者那裏聽到的一致。 –

相關問題