【发布时间】:2011-06-08 11:08:16
【问题描述】:
如果我想编写 node.js 并使用 CoffeeScript,我有什么限制? 我可以在 JS 中做任何我能做的事情吗?
【问题讨论】:
标签: javascript node.js coffeescript
如果我想编写 node.js 并使用 CoffeeScript,我有什么限制? 我可以在 JS 中做任何我能做的事情吗?
【问题讨论】:
标签: javascript node.js coffeescript
是的,CoffeeScript 只是简单地编译成纯 JS,使其与 node.js 完全兼容。
要在节点上运行 CoffeeScripts,您可以:
coffee -c example.coffee进行编译,然后输入node example.js运行编译后的JS。coffee example.coffee
【讨论】:
require未编译的coffeescript文件,只要你事先require('coffee-script')。
coffee example.coffee 主要是为了开发吗?还是在生产中足够稳定?
sudo npm install -g coffee-script
你不仅可以直接在 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') 作为将在server.js 的app.js 中执行的第一行。 (更新:从咖啡脚本 1.7 开始,您将不得不这样做 require('coffee-script/register'))
这会将 coffeescript 编译器注册到您的应用程序中,您现在可以开始平等地处理咖啡文件和 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
Jitter 在后台运行,直到您将其终止 (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.js 的集成非常牢固。一旦“coffee-script”模块被require('coffee-script')、我在上面演示的she-bang或运行coffee demo.coffee加载......一旦加载,你可以使用require('./foo')来引入@ 987654326@
【讨论】:
如果您想在每次更改为 javascript 时自动编译所有的咖啡脚本文件(在一个目录中,包括子目录),只需使用以下命令:
find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc
【讨论】:
coffee -o lib/ -cw src/