coffeescript、jade、stylus -> js、css 资产管理器?节点.js
Posted
技术标签:
【中文标题】coffeescript、jade、stylus -> js、css 资产管理器?节点.js【英文标题】:coffeescript, jade, stylus -> js, css asset manager? node.js 【发布时间】:2012-02-18 13:07:42 【问题描述】:我从事咖啡脚本、玉石和手写笔的工作。
我的应用程序服务于两个不同的“单页应用程序”。对于这些应用程序,我在初始有效负载中提供所有资产。
我想将所有coffeescript文件和jade模板分组、编译和连接成一个js资产,并将stylus文件组合成一个css资产,用于每个“单页应用”。
然后我可以不理会我的/public/js
和/public/css
,它们将始终拥有两个不同应用程序的当前 js 和 css 资产文件。
以前有人设置过这样的工作流程吗?有什么想法可以做到这一点吗?
谢谢!!
编辑:http://blog.fogcreek.com/the-trello-tech-stack/
通过更多研究,我发现这里写的过程,但他们没有说明他们是如何做到的。
【问题讨论】:
同一个问题真的需要提交3次吗? 【参考方案1】:我推荐使用Grunt,通过 Grunt,您可以设置各种工作流和任务。我个人使用mean.io 作为我大部分项目的样板。他们有一个非常好的 Grunt 文件,其中包含使用assetmanager 将 css 和 js 连接和缩小到单个文件所需的大多数任务。 Mean.io 不使用玉石或手写笔,但您可以轻松添加那些 Grunt 任务。
【讨论】:
【参考方案2】:您可以使用 connect-assets 管道将已编译的 Jade 资产拉入您的 javascript,方法是使它们成为使用它们的 CoffeeScript 文件的依赖项。
我有一篇详细的博文 -> Server side compiling of Jade templates with connect-assets.
【讨论】:
【参考方案3】:我为此编写了一个节点应用程序。这很简单,但它对我有用。代码非常简单(72 行),您可以随意调整它。每当您保存咖啡、手写笔或玉文件时,它都会转换为 js、css 或 html。它不处理文件删除或任何其他花哨的东西。它并不完美,但至少我确切地知道它是如何工作的,这使得调试变得容易。
https://github.com/Gijsjan/Template-Engine-Watcher
【讨论】:
记录一下:不久之后,我开始使用 Grunt 来管理这个和许多其他任务!【参考方案4】:我写了一个开源项目(MIT license)来解决这个问题:
Giles - https://github.com/255BITS/giles
Giles 为您构建静态资源(Jade、Stylus、CoffeeScript)。它可以独立运行、作为 Web 服务器或作为连接模块运行。您可以轻松地向 Giles 添加对其他语言的支持(参见 github 页面)
【讨论】:
【参考方案5】:你可以用 JS 很简单地用 Express + Stitch / StitchUp 做到这一点
示例配置: https://gist.github.com/1094412
另一种选择也是交错:
http://www.distractable.net/coding/javascript-builds-using-interleave
手写笔中间件的选项应该为你的 CSS 排序: http://learnboost.github.com/stylus/docs/middleware.html
这里还有很多选择:
http://toolbox.no.de/search?q=asset
【讨论】:
@fancy 考虑到这是唯一的答案,而且几乎可以解决您的问题,为什么不将其标记为已接受?以上是关于coffeescript、jade、stylus -> js、css 资产管理器?节点.js的主要内容,如果未能解决你的问题,请参考以下文章