2012-04-18 40 views
9

对于业余爱好项目,目前我正在工作,包括稍后在编译后的语言,例如Coffeescript到Javascript,LESS到CSS等等......我一直在通过shell脚本来组织和维护代码。构建系统,集成coffeescript,LESS(等)web开发?

这是完全可行的,但有时我认为专用的构建系统会更合适。典型的任务包括文件翻译,删除非缩小版本,获取更新的外部库等等......

有没有任何构建系统将所有这些功能组合起来?

编辑:

非常感谢您的答复。 运气可能有它,我今天发现了这个工具,并决定放弃它:http://brunch.io/ 不过,我接受的答案更接近我的想法。

早午餐之前,我还在考虑SCons的,因为它是很简单的web项目,我可以利用与其他项目的知识(在C,Python和Java的等)

+0

编辑所以它不是要求推荐,而是要求解决方案:构建集成了网络资源管理(例如LESS,CoffeeScript等)的系统 – 2013-07-27 11:46:18

回答

6

为CoffeeScript的项目中最常见的做法是使用CoffeeScript自己的cake。您将Cakefile放入存储库的根目录并创建执行构建步骤的任务。你可以调用less.js和咖啡来直接从你的任务中调用。

我使用了几个工具:browserifyuglifyJS在我的Cakefile任务中为浏览器创建一个完整的包。这是一个fairly complicated Cakefile,但寻找构建任务,以了解如何一起使用这些工具。

请注意,该示例不包括只有javascript的最终包中的css。 Here is an example of a Cakefile I've written that embeds javascript right into the html。你可以用CSS来做同样的事情。关于Cakefile的好处在于,它在开发过程中将资产分开,然后只在准备部署时将它们包装在一起。也就是说,如果你可以避免将它们分开,那么对于缓存和开发便利的原因而言,这是可取的。我在这个例子中包装它的唯一原因是因为最终的包需要在另一个没有跨站点访问的环境中运行。

1

如果您正在开发像Rails这样的Web框架的项目,那么您应该配置Web框架以在服务时编译CoffeeScript和LESS。

如果你正在开发没有后台“静态”的网站,然后我会建议之一:

  1. 使用像LiveReload工具(MAC-只),或
  2. 使用静态网站生成器像Middleman
+0

“您应该配置Web框架以便在服务时编译CoffeeScript和LESS “。 ...正在开发 – umassthrower 2012-08-14 04:55:04

2

我个人一直使用的RubyGems的组合完成这个任务,主要是:

  • 卫队
  • 链轮
  • 后卫 - 链轮

卫队是将监听文件的更改,然后可以做的“东西”给那些修改过的文件的瑰宝。

Sprockets在Ruby on Rails中用于其资产管道。简而言之,在转换/转换CoffeeScript,LESS,SASS,JS模板时,几乎所有需要转换的东西都需要转换,并且有一个RubyGem用于转换。

guard-sprockets gem是两者之间的粘合剂,每次更改源文件时都会调用链轮来生成我的文件。

如果您熟悉Ruby,RubyGems和Bundler,可以看看我使用这三个RubyGems创建的Project Template。这绝对不是完美的,但它目前适用于我,并可能帮助你开始。

https://github.com/spadin/frontend-project-template

1

我用Mindscape Workbench与Visual Studio 2010,这太棒了。

从网站:

  1. 超级好用

    安装扩展程序,即可大功告成。无需设置发布后生成事件或输出生成器。保存这些文件,并根据需要生成关联的CSS或JS文件。简单!

  2. 语法高亮

    通过扩展Visual Studio中,在Web工作台会给你无礼的话,少,咖啡脚本语法高亮显示。一种帮助学习语法并更好地理解你正在编写的代码的好方法。

  3. 智能感知

    的Visual Studio为开发人员提供梦幻般的智能感知,我们已经很努力,当你编辑带来智能感知的无礼和减档。

  4. 免费使用

    欢迎您使用本软件免费,如果你喜欢它,你最多可以移动到专业版为小$ 39!你想

    你不必使用所有这三种支持的语言

  5. 只使用了位。如果您只想要Coffee Script,或者只想使用Less,那么通过所有方法就可以使用这些部分。这一切都在一个安装,但在你的应用程序中不相互依赖。

+0

我刚刚安装了它,除非我错过了它不支持生产代码的东西。你必须在HTML中包含每一个咖啡文件。 – 2012-10-18 15:28:18

5

你应该考虑的另一个选择是CoffeeToaster:
http://github.com/serpentem/coffee-toaster

它配备了一个包装系统,该系统启用时会使用你的文件夹的层次结构,如果你想使空间中声明你的类,然后就可以从多个文件扩展类,做进口和儿子,比如像:

#<< another/package/myclass 
class SomeClass extends another.package.MyClass 

构建配置极其简约,简单,做是显而易见的:

# => SRC FOLDER 
toast 'src_folder' 
    # => VENDORS (optional) 
    # vendors: ['vendors/x.js', 'vendors/y.js', ... ] 

    # => OPTIONS (optional, default values listed) 
    # bare: false 
    # packaging: true 
    # expose: '' 
    # minify: false 

    # => HTTPFOLDER (optional), RELEASE/DEBUG (required) 
    httpfolder: 'js' 
    release: 'www/js/app.js' 
    debug: 'www/js/app-debug.js' 

还有一个调试选项,单独编译文件以方便调试过程和其他有用的功能。

看一看,也许它让你满意。

+0

非常有趣的项目。我一定会检查出来。谢谢。 – 2012-04-27 10:59:46