如何使用Node.js / Express自动编译客户端CoffeeScript文件

时间:2013-05-25 22:12:39

标签: javascript node.js coffeescript

正如标题所说我试图在页面加载时自动编译公共静态coffeescript文件,而不是自己编译它们并使用.js文件,我怎么能实现这一点,我试图维护一个完整的CoffeeScript堆栈,这是我唯一无法搞清楚的事情。

tl; dr:阅读帖子的标题。

3 个答案:

答案 0 :(得分:3)

有很多方法可以完成你想要做的事情。我所知道的最容易的两个:

  1. 使用connect-assets模块。这背后的想法是您在根目录中有一个/assets文件夹,并使用express.static实例化它,就像您通常使用/public文件夹一样。在那里,您还有两个文件夹:/js/css。您的CoffeeScript会进入/js文件夹。然后,在视图模板中,只需调用js('yourfile')即可。这是一个非常简单的模块,但不是最受倡导的资产管道。

  2. 使用asset-rack。虽然不像连接资产那么容易掌握,但它非常灵活且易于扩展。它将是Rails资产管道最接近的比较器,并被大多数流行的JS框架(如Sails.js)使用。

  3. 但是,我确实建议您不要动态编译资产,因为它确实会耗尽服务器性能。

    使用构建系统编译文件保存会更好 - CoffeeScript附带Cake,因此您可以在Cakefile中定义监视/编译/构建/连接步骤,并且您需要编译所需的全部内容文件保存是在更改任何代码之前在终端中键入$ cake watch

    或者你可以编写代码,然后$ cake build。无论你喜欢什么。我还可以补充说,cake-flour需要所有编写Cake任务的痛苦。

答案 1 :(得分:2)

coffee --watch --compile .

监视.中的文件更改并在更改时编译它们。由于您使用的是expressjs,我认为您还希望在重新编译后立即重新启动服务器:

coffee --compile --watch . &; nodemon server.js

使用https://github.com/remy/nodemon

答案 2 :(得分:0)

如果您只想通过HTTP访问已编译的CoffeeScript文件,您还可以尝试使用connect-coffee-script中间件。它对我来说效果很好。

与使用coffee --watch --compile相比,它不需要运行单独的程序。