SassAndCoffee使用'bare'选项编译CoffeeScript。我能控制一下吗?

时间:2011-10-22 04:48:39

标签: coffeescript

如果我从NuGet安装SassAndCoffee.Core包,然后让SassAndCoffee编译一些CoffeeScript,它似乎将“裸”选项传递给CoffeeScript编译器 - 也就是说,它不会将我的脚本包装在CoffeeScript的常用{ {1}}和(function() {书挡。

有没有办法让SassAndCoffee 使用“裸”选项?

注意:这是在桌面应用程序中,我明确地调用了SassAndCoffee的代码 - 这不是在ASP.NET站点中发生的神奇重写。

更多细节:这是我使用SassAndCoffee编译CoffeeScript的代码。

}).call(this);

导致var sassCompiler = new CoffeeScriptCompiler(); var js = sassCompiler.Compile("alert 'Hello World'"); 变量中的以下(裸)输出:

js

但是,如果我编写一些简单的JavaScript,使用默认选项调用official CoffeeScript compiler,例如这个HTML文件(将coffee-script.js放到同一目录中):

alert('Hello World');

我得到了预期的包装JavaScript输出:

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

看起来SassAndCoffee正在调用(function() { alert('Hello World'); }).call(this); 而不只是CoffeeScript.compile(input, {bare: true})

我想使用SassAndCoffee.Core支持V8,但我希望能够在默认输出和裸输出之间进行选择。没有重写SassAndCoffee的CoffeeScript编译器(这有点打败使用SassAndCoffee的点),或者手动预先添加和附加包装器代码(我觉得编译器应该做的脏重复工作),有什么方法我可以得到SassAndCoffee输出非裸JavaScript吗?

1 个答案:

答案 0 :(得分:1)

如果我正确阅读,那么开发人员似乎是明确的决定:

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

这也可能为您提供需要更改的文件,以根据您的需要进行修改。

作为替代方案,如果您遇到困难,我会使用Mindscape Web Workbench作为Visual Studio插件,它似乎可以完成SassAndCoffee为您完成的大部分工作。