web-dev-qa-db-fra.com

Puis-je utiliser CoffeeScript au lieu de JS pour node.js?

Quelles sont mes restrictions si je veux coder node.js et utiliser CoffeeScript? Puis-je faire quelque chose que je pourrais faire dans JS?

189
donald

Oui, CoffeeScript est simplement compilé en JS pur, le rendant totalement compatible avec node.js.

Pour exécuter CoffeeScripts sur le noeud, vous pouvez:

  • Tapez coffee -c example.coffee à compiler, suivi de node example.js pour exécuter le JS compilé.
  • Tapez simplement coffee example.coffee
175
David Tang

Vous pouvez non seulement exécuter des fichiers CoffeeScript directement dans Node avec

coffee source.coffee

vous pouvez également les demander comme s'il s'agissait de fichiers JavaScript. Par exemple, si vous avez lib.coffee dans un répertoire, vous pouvez écrire

require './lib'

depuis un autre fichier CoffeeScript du même répertoire. (Pour le faire depuis un fichier JavaScript, vous devrez ajouter require 'coffee-script' en haut.) Ainsi, vous n'avez jamais à faire de compilation explicitement sous Node, à moins que vous ne conditionniez votre projet pour le déploiement avec un outil tel que npm.

Une mise en garde: dans les traces de pile, les numéros de ligne que vous verrez se rapportent au code JavaScript compilé, même lorsque vous exécutez directement CoffeeScript (afin que vous n'ayez pas accès au code JavaScript). Beaucoup de gens essaient de résoudre ce problème, mais c'est un gros défi.

89
Trevor Burnham

Oui, voici une réponse différente et plus simple. Vous devez faire 2 étapes.

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

  2. Ayez require('coffee-script') comme première ligne exécutée dans server.js Sur app.js. (PDATE: depuis coffee script 1.7, vous devrez faire require('coffee-script/register'))

Cela enregistre le compilateur Coffeescript dans votre application et vous pouvez commencer à traiter les fichiers café et les fichiers js de la même manière (ce qui signifie que vous pouvez également exiger des fichiers café!).

Cette méthode nécessite que vous n'écriviez qu'un seul fichier (app.js) en javascript dans Vanilla. Mais l'avantage est que votre environnement de déploiement n'a pas besoin de coffeescript comme dépendance initiale installée globalement pour exécuter votre application. Dans ce cas, il vous suffirait de copier votre code et npm install Installerait tous les packages nécessaires. Et npm start Vous rendrait opérationnel

57
gprasant

Tutoriels vidéo

J'ai vu une série de tutoriels de Pedro Teixeira. Il a construit toute une série de tutoriels sur les nœuds. Il inclut une référence à nodemon pour la détection automatique, la compilation et le rechargement de fichiers .coffee édités.

  1. Coffeescript et Node.js
  2. Nodemon
15
Mark Essel

Vous pouvez utiliser Jitter , une compilation continue simple pour CoffeeScript.

npm install -g jitter

Supposons que vous ayez plusieurs fichiers * .coffee dans le répertoire coffee et que vous souhaitiez les compiler dans le répertoire js. Puis lancez:

jitter coffee js

La gigue s'exécute en arrière-plan jusqu'à ce que vous la terminiez (Ctrl + C), surveillant les nouveaux changements.

11
Roger Garzon Nieto

Coffeescript + ExpressJS + Couchdb + Redis + Auth:

https://Gist.github.com/652819

8
Shripad Krishna

Essaye ça

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

Alors fais:

chmod +x demo.coffee
./demo.coffee

CoffeeScript a une intégration assez solide avec noeud. Une fois que le module 'coffee-script' est chargé, soit par require('coffee-script'), soit par le she-bang que j'ai présenté ci-dessus, soit en exécutant coffee demo.coffee ... une fois chargé, vous pouvez utiliser require('./foo') pour importer foo.coffee

6
Dave Dopson

Si vous voulez compiler automatiquement tous vos fichiers coffeescript (dans un répertoire, y compris subdir) à chaque fois qu'ils changent en javascript, utilisez simplement la commande suivante:

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