0

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

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

4

3 回答 3

3

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

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

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

但是,我真的建议您不要即时编译资产,因为它确实会消耗服务器性能。

使用构建系统在文件保存时编译会更好——CoffeeScript 随 Cake 一起提供,因此您可以在 Cakefile 中定义一个监视/编译/构建/连接步骤,而您在文件保存时编译所需要的只是$ cake watch在更改任何代码之前输入终端。

或者,您可以编写代码,然后$ cake build. 无论您喜欢哪个。我还可以补充一点,蛋糕粉可以消除编写蛋糕任务的所有痛苦。

于 2013-05-27T22:33:04.930 回答
2
coffee --watch --compile .

监视文件更改.并在更改时对其进行编译。由于您使用的是 expressjs,我认为您还想在重新编译发生后立即重新启动服务器:

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

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

于 2013-05-25T22:25:15.887 回答
0

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

它的优势coffee --watch --compile在于您不需要运行单独的程序。

于 2013-05-27T23:06:28.910 回答