【问题标题】:Can I use CoffeeScript instead of JS for node.js?我可以在 node.js 中使用 CoffeeScript 而不是 JS 吗?
【发布时间】:2011-06-08 11:08:16
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js coffeescript


    【解决方案1】:

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

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

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

    【讨论】:

    • 但是当使用其他 CoffeeScript 文件时呢?我不想把所有东西都放在 1 个 CoffeeScript 中
    • @Jiew Meng 你可以用同样的方法编译整个目录(将example.coffee替换为目录路径),或者你可以require未编译的coffeescript文件,只要你事先require('coffee-script')
    • 运行coffee example.coffee 主要是为了开发吗?还是在生产中足够稳定?
    • 是的,这两种选择有什么区别?
    • 安装咖啡sudo npm install -g coffee-script
    【解决方案2】:

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

    coffee source.coffee
    

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

    require './lib'
    

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

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

    【讨论】:

    • 客户端咖啡/js会发生什么?
    • 客户端需要您必须包含在 HTML 页面中的广告解释器。
    • @fancy, coffescript > 1.6.1 supports source maps
    • 据我所知,如果不将 JS 与您脑海中的咖啡关联起来,这是无法调试的。
    • Coffeescript 到 JS 的转换规则非常简单,它们都有据可查:)
    【解决方案3】:

    是的,这是一个不同且更简单的答案。您需要执行 2 个步骤。

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

    2. require('coffee-script') 作为将在server.jsapp.js 中执行的第一行。 (更新:从咖啡脚本 1.7 开始,您将不得不这样做 require('coffee-script/register'))

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

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

    【讨论】:

    • 感谢@gprasant 关于 1.7 更新的说明,我一直在想为什么它停止工作。
    【解决方案4】:

    视频教程

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

    1. Coffeescript and Node.js
    2. Nodemon

    【讨论】:

    • 上面的nodetuts.com 链接已损坏。不过,该网站上的教程看起来很棒。
    • 谢谢,原来的链接目的地消失/移动了。将它们设置为谷歌搜索显示的 Vimeo 视频@countfloortiles
    • 查看brunch.io 以获得出色的 NodeJS 守护程序/资产管道解决方案。涵盖 Coffee、CSS 超集等。
    • 不久前发现了这个,但从那以后就没有访问过。谢谢你提出来
    【解决方案5】:

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

    npm install -g jitter
    

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

    jitter coffee js
    

    Jitter 在后台运行,直到您将其终止 (Ctrl+C),以观察新的变化。

    【讨论】:

      【解决方案6】:

      Coffeescript + ExpressJS + Couchdb + Redis + Auth:

      https://gist.github.com/652819

      【讨论】:

      • 该死,这是很多流行语。
      【解决方案7】:

      试试这个

      #!/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@

      【讨论】:

      • 谢谢,很有用!
      【解决方案8】:

      如果您想在每次更改为 javascript 时自动编译所有的咖啡脚本文件(在一个目录中,包括子目录),只需使用以下命令:

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

      【讨论】:

      • 内置的coffeescript功能有什么问题? coffee -o lib/ -cw src/
      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 2012-02-13
      • 1970-01-01
      • 2017-06-10
      • 2021-04-18
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多