在保存时编译 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 期间失败: 文件无效或损坏
在编译字符串插值实例时,Coffeescript是否始终使用ES6模板文字?