我可以为node.js使用CoffeeScript而不是JS吗?

时间:2011-01-13 12:01:36

标签: javascript node.js coffeescript

如果我想编写node.js并使用CoffeeScript,我的限制是什么? 我可以做任何我能用JS做的事吗?

8 个答案:

答案 0 :(得分:175)

是的,CoffeeScript只是编译成纯JS,使其与node.js完全兼容。

要在节点上运行CoffeeScripts,您可以:

  • 键入coffee -c example.coffee进行编译,然后node example.js运行已编译的JS。
  • 只需输入coffee example.coffee
  • 即可

答案 1 :(得分:89)

您不仅可以直接在Node中使用

运行CoffeeScript文件
coffee source.coffee

您也可以将它们视为JavaScript文件。例如,如果目录中有lib.coffee,则可以编写

require './lib'

来自同一目录中的另一个CoffeeScript文件。 (为了从JavaScript文件中执行此操作,您必须在顶部添加require 'coffee-script'。)因此,您永远不必在Node下显式编译,除非您打包项目以进行部署像npm这样的工具。

一个警告:在堆栈跟踪中,即使您直接运行CoffeeScript(因此您无法访问JavaScript),您将看到的行号也会引用已编译的JavaScript。很多人都试图解决这个问题,但这是一个很大的挑战。

答案 2 :(得分:57)

是的,这里有一个不同的&更简单的答案。你需要做两个步骤。

  1. npm install coffee-script --save # I assume you would have done this already

  2. require('coffee-script')作为server.js app.js require('coffee-script/register'))中执行的第一行。 (更新:,因为咖啡脚本1.7,你必须做npm install

  3. 这会将coffeescript编译器注册到您的应用程序,您现在可以开始同等地处理咖啡文件和js文件(这意味着您也可以要求咖啡文件!)。

    此方法将要求您在vanilla javascript中只编写一个文件(app.js)。但优点是您的部署环境不需要将coffeescript作为初始全局安装的依赖项来运行您的应用程序。在这种情况下,您只需要复制代码,npm start将安装所有必需的包。 {{1}}会启动并运行

答案 3 :(得分:15)

视频教程

我看过 Pedro Teixeira 的精彩教程。他一直在构建关于节点教程的整个系列。他包括对nodemon的引用,用于自动检测和编译以及重新加载已编辑的.coffee文件。

  1. Coffeescript and Node.js
  2. Nodemon

答案 4 :(得分:11)

您可以使用Jitter,这是CoffeeScript的简单连续编译。

npm install -g jitter

假设你在咖啡目录中有一堆* .coffee文件,并希望将它们编译到js目录。然后运行:

jitter coffee js

抖动在后台运行,直到你终止它(Ctrl + C),看着新的变化。

答案 5 :(得分:8)

Coffeescript + ExpressJS + Couchdb + Redis + Auth:

https://gist.github.com/652819

答案 6 :(得分:6)

试试这个

#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"

然后做:

chmod +x demo.coffee
./demo.coffee

CoffeeScript与节点的结合非常可靠。一旦加载了'coffee-script'模块,可以通过require('coffee-script'),通过我上面演示的模仿,或者运行coffee demo.coffee ...一旦加载,你可以使用{{1引入require('./foo')

答案 7 :(得分:0)

如果您想在每次更改为javascript时自动编译所有coffeescript文件(在一个目录中包含subdir),只需使用以下命令:

find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc