在保存时编译 CoffeeScript?

Posted

技术标签:

【中文标题】在保存时编译 CoffeeScript?【英文标题】:Compile CoffeeScript on Save? 【发布时间】:2011-09-11 07:07:54 【问题描述】:

是否有在保存时轻松编译 CoffeeScript 的方法?我正在使用 TextMate 或 Sublime Text 2。

【问题讨论】:

WebStorm 的CoffeeScript 编译器设置zsitro.com/coffeescript-compiler-setup-for-webstorm 【参考方案1】:

Coffeescript 具有“观看”功能。您可以将其设置为半永久性流程:

coffee –wc -o media/js/ src/coffee/*.coffee

并且对于每个扩展名为“.coffee”的文件,每次保存时都会将对应的编译好的“.js”文件放入目标目录中。

也就是说,我使用 makefile 和 fabfile,因为我的 html 是 HAML,我的 CSS 是 LessCSS,我的开发目录不是我的测试路径,所以我需要足够聪明的东西来“构建和部署”。

如果您的机器支持 inotify,您可以使用 inotifywait 来查看您的整个工作路径,并根据需要调用 Make。但到那时,你就陷入了顽固的极客中。

【讨论】:

小精灵的回答是正确的。还有 Jitter,我的一个小项目,它增加了一些额外的功能(比如编译错误时的 Growl 通知):github.com/TrevorBurnham/jitter 如果您使用 HAML、SASS/Compass 和 CoffeeScript 组合,不妨试试StaticMatic 2。 感谢这让我指出了正确的方向。我使用命令coffee -c -o dirToBuildTo --watch dirToBuildFrom 效果很好。 我写了这个,它对coffeescript和less有用。 bitbucket.org/poulejapon/tumbler/downloads【参考方案2】:

您也可以在没有命令行的情况下完成此操作:

    Add a build process to Sublime Text。 确保在Tools 菜单中选择了Save All on Build。 保存时使用 ⌘B 而不是 ⌘S。

所以不是在保存时编译,而是在编译时保存。

【讨论】:

【参考方案3】:

使用 Sublime 最直接的解决方案是安装名为 Better Coffeescript 的 Sublime 包(首选项 --> 包控制 --> 安装包...),然后确保其配置包含 "compileOnSave": true(首选项 - -> 包设置--> 更好的 Coffeescript...)。然后重启 Sublime。

对于 Sublime,其他任何东西都不够或额外的组件太多。升级到 Sublime 3 后才来到这里,它就像 Sublime 3 的魅力一样(就像 Sublime 2 一样,一开始我只是忘记了它)。

【讨论】:

【参考方案4】:

coffee --watch 有两个主要缺陷:

发出命令后创建的新文件未被监视 需要手动启动,所以你可能会忘记这样做,这听起来并不比忘记在你之前编译更聪明git commit

我想出的解决方案是一个相当简单的 Bash 脚本,它需要 coffee --watch 进一步几步,这将允许你的工作目录树在系统登录后被监视,并在每个文件保存时自动编译成 javascript/改变 或创建新文件:

http://blog.gantrithor.com/post/11609373640/carefree-coffeescript-auto-compiler

可能有更优雅的方式来做到这一点,但这个实现效果很好 =)

【讨论】:

试试coffee -wc -o . .,它将编译所有新旧 .coffee 文件。只有当您这样做时:coffee -wc -o . ./*.coffee,您的第一个“缺陷”才会出现。【参考方案5】:

如果您还想捆绑,builder 也提供观看和捆绑:https://github.com/balupton/buildr.npm

(Java|Coffee)Script 和 (CSS|Less) (Builder|Bundler|Packer|Minifier|Merger|Checker)

【讨论】:

【参考方案6】:
gem install stasis
stasis -d

与所有其他静态编译工具(如 StaticMatic、Middleman 等)相比,我发现的最佳解决方案。

非常灵活和可配置,不依赖于任何预设的文件夹结构。只需添加 controller.rb 并编写一些 Ruby。很多帮助者在编译之前/之后做一些聪明的事情。

https://github.com/winton/stasis

【讨论】:

【参考方案7】:

我喜欢 codekit :) 编译 coffeescript、sass、less、haml 等的简单而有效的方法,并且有很多细节。 http://incident57.com/codekit/

【讨论】:

以上是关于在保存时编译 CoffeeScript?的主要内容,如果未能解决你的问题,请参考以下文章

VC2010编译时提示:转换到 COFF 期间失败: 文件无效或损坏

Rails 啥时候编译 CoffeeScript?

QT Creator 构建错误:转换为 COFF 期间失败

在编译字符串插值实例时,Coffeescript是否始终使用ES6模板文字?

JetBrains IDE:禁用 CoffeeScript -> 保存时生成 .js 文件

ruby on rails 中的 Coffeescript 编译错误