如果我想编写 node.js 并使用 CoffeeScript,我有什么限制?我可以在 JS 中做任何我能做的事情吗?
8 回答
是的,CoffeeScript 只是简单地编译成纯 JS,使其与 node.js 完全兼容。
要在节点上运行 CoffeeScripts,您可以:
- 键入
coffee -c example.coffee
要编译,然后node example.js
运行已编译的 JS。 - 只需键入
coffee example.coffee
你不仅可以直接在 Node 中运行 CoffeeScript 文件
coffee source.coffee
您也可以要求它们,就好像它们是 JavaScript 文件一样。例如,如果你有lib.coffee
一个目录,你可以写
require './lib'
来自同一目录中的另一个 CoffeeScript 文件。(为了从 JavaScript 文件执行此操作,您必须require 'coffee-script'
在顶部添加。)因此,您无需在 Node 下显式进行编译,除非您使用 npm 之类的工具打包项目以进行部署。
一个警告:在堆栈跟踪中,您将看到的行号指的是已编译的 JavaScript,即使您直接运行 CoffeeScript(因此您无权访问 JavaScript)。很多人都在尝试解决这个问题,但这是一个很大的挑战。
是的,这是一个不同且更简单的答案。您需要执行 2 个步骤。
npm install coffee-script --save # I assume you would have done this already
.有作为将在中
require('coffee-script')
执行的第一行。(更新:因为咖啡脚本 1.7,你将不得不做server.js
app.js
require('coffee-script/register'))
这会将咖啡脚本编译器注册到您的应用程序,您现在可以开始平等地处理咖啡文件和 js 文件(这意味着您也可以需要咖啡文件!)。
此方法将要求您只用 vanilla javascript 编写一个文件 (app.js)。但优点是您的部署环境不需要将 coffeescript 作为初始全局安装的依赖项来运行您的应用程序。在这种情况下,您只需复制您的代码,并npm install
安装所有必要的包。npm start
让你启动并运行
视频教程
我看过Pedro Teixeira的精彩教程系列。他一直在构建关于节点教程的整个系列。他包括对 nodemon 的参考,用于自动检测和编译以及重新加载已编辑的 .coffee 文件。
您可以使用Jitter,一种用于 CoffeeScript 的简单连续编译。
npm install -g jitter
假设您在coffee 目录中有一堆*.coffee 文件,并且想将它们编译到js 目录中。然后运行:
jitter coffee js
抖动在后台运行,直到您将其终止 (Ctrl+C),以观察新的变化。
Coffeescript + ExpressJS + Couchdb + Redis + Auth:
试试这个
#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"
然后做:
chmod +x demo.coffee
./demo.coffee
CoffeeScript 与 node 的集成非常牢固。一旦'coffee-script'模块被加载,或者通过require('coffee-script')
我在上面演示的she-bang,或者通过运行coffee demo.coffee
......一旦加载,你就可以用来require('./foo')
引入foo.coffee
如果您想在每次更改为javascript时自动编译所有coffeescript文件(在一个目录中,包括subdir),只需使用以下命令:
find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc