Node.js için JS yerine CoffeeScript kullanabilir miyim?


189

Node.js'yi kodlamak ve CoffeeScript kullanmak istersem kısıtlamalarım nelerdir? JS'de yapabileceğim herhangi bir şey yapabilir miyim?

Yanıtlar:


175

Evet, CoffeeScript yalnızca saf JS'de derlenir ve bu da node.js ile tamamen uyumlu hale gelir.

CoffeeScripts'i düğümde çalıştırmak için aşağıdakilerden birini yapabilirsiniz:

  • Tip coffee -c example.coffeeardından derlemeknode example.js derlenmiş JS çalıştırmak için.
  • Basitçe yazın coffee example.coffee

2
Peki ya diğer CoffeeScript dosyalarını kullanırken? Her şeyi 1 CoffeeScript'e koymak istemiyorum
Jiew Meng

3
@Jiew Meng tüm bir dizini aynı şekilde derleyebilir (example.coffee'yi dizin yolu ile değiştirebilir) veya önceden requirederlediğiniz sürece derlenmiş kahve dosyaları yapabilirsiniz require('coffee-script').
David Tang

1
Koşmak coffee example.coffeeöncelikle gelişim için mi? Yoksa üretimde yeterince kararlı mı?
mrmagooey

4
Evet, iki seçenek arasındaki fark nedir?
Steve Bennett

4
Kahve yüklemek içinsudo npm install -g coffee-script
Dmitry Polushkin

89

CoffeeScript dosyalarını yalnızca Düğümde doğrudan çalıştırmakla kalmaz, aynı zamanda

coffee source.coffee

JavaScript dosyalarıymış gibi de isteyebilirsiniz. Örneğin, lib.coffeebir dizinde varsa,

require './lib'

aynı dizindeki başka bir CoffeeScript dosyasından. (Bunu bir JavaScript dosyasından yapmak için şunu eklemeniz gerekir:require 'coffee-script' , en üste .) Bu nedenle, projenizi npm gibi bir araçla dağıtmak için paketlemediğiniz sürece, Düğüm altında hiçbir zaman açıkça derleme yapmanız gerekmez.

Bir uyarı: Yığın izlerinde göreceğiniz satır numaraları, CoffeeScript'i doğrudan çalıştırsanız bile derlenmiş JavaScript'i ifade eder (böylece JavaScript'e erişiminiz yoktur). Birçok kişi bunu düzeltmeye çalışıyor, ancak bu büyük bir zorluk.


1
İstemci tarafı kahve / js ile ne olur?
Fantezi

istemci tarafı, HTML sayfasına eklemeniz gereken reklam yorumlayıcıya ihtiyaç duyar.
Daniele Vrut

1
@fancy, coffescript> 1.6.1 kaynak haritaları destekliyor
MegaTux

1
Bildiğim kadarıyla bu JS kafanızdaki kahve ile ilişkilendirmeden hata ayıklama mümkün değildir.
Eric

1
Kahve dönüştürme JS dönüşüm kuralları oldukça basit, hepsi iyi belgelenmiş :)
Kedare

57

Evet, işte farklı ve daha basit bir cevap. 2 adım atmanız gerekiyor.

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

  2. Var require('coffee-script')içinde çalıştırılamazdı ilk satırı olarak server.jsbir app.js. ( GÜNCELLEME: kahve betiği 1.7'den beri, yapmanız gerekenlerrequire('coffee-script/register'))

Bu, kahve derleyicisini uygulamanıza kaydeder ve şimdi kahve dosyalarını ve js dosyalarını eşit olarak işlemeye başlayabilirsiniz (yani kahve dosyalarına da ihtiyacınız olabilir!).

Bu yöntem, vanilya javascript'ine yalnızca bir dosya (app.js) yazmanızı gerektirir. Ancak avantaj, dağıtım ortamınızın, uygulamanızı çalıştırmak için genel olarak yüklenen bir bağımlılık olarak kahve metnine sahip olması gerekmemesidir. Bu durumda, kodunuzu kopyalamanız ve npm installgerekli tüm paketleri kurmanız gerekir. Ve npm startseni çalıştırır mısın


2
1.7 güncelleme @gprasant hakkındaki not için teşekkürler, bunun neden çalıştığını merak ederek saçlarımı çekiyordum.
pix0r

15

Video Eğiticileri

Pedro Teixeira'dan harika bir eğitim dizisi gördüm . Düğüm eğiticilerine bir seri hazırlıyor. Düzenlenmiş .coffee dosyalarının otomatik tespiti ve derlenmesi ve yeniden yüklenmesi için nodemon'a referans içerir.

  1. Coffeescript ve Node.js
  2. Nodemon

Yukarıdaki nodetuts.com bağlantıları bozuk. Yine de bu sitedeki eğiticiler harika görünüyor.
ekillaby

teşekkürler, orijinal bağlantı hedefleri kayboldu / taşındı. Onları google aramasının ortaya çıkardığı şekilde ayarlayın, Vimeo videolar @countfloortiles
Mark Essel

3
Harika bir NodeJS arka plan programı / varlık hattı çözümü için brunch.io'ya bakın . Kahve, CSS süper setleri ve daha fazlasını kapsar.
Lincoln B

Bu bir süre önce gördü, ama beri ziyaret etmedi. getirdiğin için teşekkürler
Mark Essel

11

Sen kullanabilirsiniz Jitter , CoffeeScript için Basit sürekli derleme.

npm install -g jitter

Kahve dizininde bir sürü * .coffee dosyanız olduğunu ve bunları js dizinine derlemek istediğinizi varsayalım. O zaman koş:

jitter coffee js

Jitter siz sonlandırana kadar arka planda çalışır (Ctrl + C) ve yeni değişiklikleri izler.



6

Bunu dene

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

Sonra şunları yapın:

chmod +x demo.coffee
./demo.coffee

CoffeeScript, düğüm ile oldukça sağlam bir entegrasyona sahiptir. 'Coffeescript' modülü, biri tarafından yüklendikten sonra require('coffee-script')dişi patlamayla tarafından, yukarıdaki demo'd veya koşma tarafından coffee demo.coffeeyüklenen bir kez ..., kullandığınız olabilir require('./foo')getirmekfoo.coffee


Teşekkürler, bu çok faydalı!
Mike Ellis

0

Tüm kahve dosyalarınızı javascript'e her değiştiklerinde (alt dizin dahil tek bir dizinde) otomatik olarak derlemek istiyorsanız, şu komutu kullanın:

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

6
Yerleşik kahve biçimi işlevinde sorun nedir? coffee -o lib/ -cw src/
aaaidan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.