我可以用CoffeeScript代替JS用于node.js吗?

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

是的,CoffeeScript只是编译成纯JS,使得它完全兼容node.js.

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

  • 键入coffee -c example.coffee进行编译,然后按node example.js运行编译后的JS。
  • 只需inputcoffee example.coffee

您不仅可以直接在Node中运行CoffeeScript文件

 coffee source.coffee 

你也可以要求他们,如果他们是JavaScript文件。 例如,如果你在一个目录中有lib.coffee ,你可以写

 require './lib' 

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

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

是的,这是一个不同的和更简单的答案。 你需要做2个步骤。

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

  2. require('coffee-script')作为在app.js server.js中执行的第一行。 ( 更新:自咖啡脚本1.7,你将不得不require('coffee-script/register'))

这将coffeescript编译器注册到您的应用程序,您现在可以开始平等地处理咖啡文件和js文件(也就是说,您也可以要求咖啡文件!)。

这个方法将要求你在香草javascript中只写一个文件(app.js)。 但好处是您的部署环境不需要将coffeescript作为初始全局安装的依赖项来运行您的应用程序。 在这种情况下,您只需复制代码, npm install将安装所有必需的软件包。 而npm start将让你运行

video教程

我见过Pedro Teixeira的一个很棒的教程系列。 他一直在构build整个系列节点教程。 他包含了对nodemon的引用,用于自动检测和编辑和重新加载已编辑的.coffee文件。

  1. Coffeescript和Node.js
  2. Nodemon

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

 npm install -g jitter 

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

 jitter coffee js 

抖动会在后台运行,直到您终止(Ctrl + C),观察新的更改。

Coffeescript + ExpressJS + Couchdb + Redis + Auth:

https://gist.github.com/652819

尝试这个

 #!/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') ,我上面演示的She-bang,或者运行coffee demo.coffee …一旦加载,就可以使用require('./foo')来引入foo.coffee

如果你想自动编译你所有的coffeescript文件(在一个目录下,包括子目录),每当它们变成javascript的时候,就使用下面的命令:

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