Bisakah saya menggunakan CoffeeScript sebagai ganti JS untuk node.js?

189

Apa batasan saya jika saya ingin kode node.js dan menggunakan CoffeeScript? Bisakah saya melakukan apa saja yang bisa saya lakukan di JS?

donald
sumber

Jawaban:

175

Ya, CoffeeScript mengkompilasi menjadi JS murni, membuatnya sepenuhnya kompatibel dengan node.js.

Untuk menjalankan CoffeeScripts pada node, Anda dapat:

  • Ketik coffee -c example.coffeeuntuk dikompilasi, diikuti dengan node example.jsmenjalankan JS yang dikompilasi.
  • Cukup ketik coffee example.coffee
David Tang
sumber
2
Tetapi bagaimana dengan saat menggunakan file CoffeeScript lainnya? Saya tidak ingin memasukkan semuanya dalam 1 CoffeeScript
Jiew Meng
3
@Jiew Meng, Anda dapat mengkompilasi seluruh direktori dengan cara yang sama (ganti example.coffee dengan path direktori), atau Anda dapat requiremengompilasi file naskah kopi selama Anda require('coffee-script')sebelumnya.
David Tang
1
Apakah berjalan coffee example.coffeeterutama untuk pembangunan? Atau cukup stabil untuk diproduksi?
mrmagooey
4
Ya, apa perbedaan antara dua pilihan itu?
Steve Bennett
4
Untuk menginstal kopisudo npm install -g coffee-script
Dmitry Polushkin
89

Anda tidak hanya dapat menjalankan file CoffeeScript langsung di Node with

coffee source.coffee

Anda juga dapat meminta mereka seolah-olah itu adalah file JavaScript. Misalnya, jika Anda memiliki lib.coffeedalam direktori, Anda dapat menulis

require './lib'

dari file CoffeeScript lain di direktori yang sama. (Untuk melakukan ini dari file JavaScript, Anda harus menambahkan require 'coffee-script'di atas.) Jadi, Anda tidak perlu melakukan kompilasi secara eksplisit di bawah Node, kecuali jika Anda mengemas proyek Anda untuk penyebaran dengan alat seperti npm.

Satu peringatan: Dalam jejak tumpukan, nomor baris yang Anda lihat merujuk pada JavaScript yang dikompilasi, bahkan ketika Anda menjalankan CoffeeScript secara langsung (sehingga Anda tidak memiliki akses ke JavaScript). Banyak orang yang mencoba untuk memperbaikinya, tetapi ini adalah tantangan besar.

Trevor Burnham
sumber
1
Apa yang terjadi dengan kopi pihak klien?
mewah
sisi klien membutuhkan juru bahasa yang harus Anda sertakan dalam halaman HTML.
Daniele Vrut
1
@fancy, coffescript> 1.6.1 mendukung peta sumber
MegaTux
1
Sejauh yang saya tahu ini tidak dapat di-debug tanpa menghubungkan JS ke kopi di kepala Anda.
Eric
1
Aturan konversi Coffeescript ke JS sangat sederhana, semuanya didokumentasikan dengan baik :)
Kedare
57

Ya, inilah jawaban yang berbeda & lebih sederhana. Anda perlu melakukan 2 langkah.

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

  2. Memiliki require('coffee-script')sebagai baris pertama yang akan dijalankan di server.jsdari app.js. ( PEMBARUAN: sejak skrip kopi 1.7, Anda harus melakukannyarequire('coffee-script/register'))

Ini mendaftarkan kompiler coffeescript ke aplikasi Anda dan Anda dapat mulai memperlakukan file kopi dan file js secara merata sekarang (artinya Anda juga memerlukan file kopi!).

Metode ini akan mengharuskan Anda untuk menulis hanya satu file (app.js) di javascript vanilla. Tetapi keuntungannya adalah bahwa lingkungan penyebaran Anda tidak perlu memiliki naskah kopi sebagai ketergantungan awal yang diinstal secara global untuk menjalankan aplikasi Anda. Dalam hal ini, Anda hanya perlu menyalin kode Anda, dan npm installakan menginstal semua paket yang diperlukan. Dan npm startingin Anda bangun dan berjalan

gprasant
sumber
2
Terima kasih atas catatan tentang pembaruan 1,7 @gprasant, saya menarik rambut saya bertanya-tanya mengapa ini berhenti bekerja.
pix0r
15

Tutorial Video

Saya telah melihat serangkaian tutorial hebat oleh Pedro Teixeira . Dia telah membangun seluruh rangkaian tutorial simpul. Ia menyertakan referensi ke nodemon untuk deteksi otomatis dan kompilasi serta memuat ulang file .coffee yang diedit.

  1. Coffeescript dan Node.js
  2. Nodemon
Mark Essel
sumber
The nodetuts.com link di atas rusak. Tutorial di situs itu terlihat bagus.
ekillaby
terima kasih, tujuan tautan asli hilang / dipindahkan. Atur mereka ke apa yang diungkapkan oleh pencarian Google, video Vimeo @countfloortiles
Mark Essel
3
Lihat brunch.io untuk solusi pipa daemon / aset NodeJS yang hebat. Meliputi Kopi, superset CSS, dan lainnya.
Lincoln B
melihat ini beberapa waktu lalu, tetapi belum mengunjungi sejak. terima kasih sudah
membahasnya
11

Anda dapat menggunakan Jitter , kompilasi berkelanjutan sederhana untuk CoffeeScript.

npm install -g jitter

Katakanlah Anda memiliki banyak file * .coffee di direktori coffee, dan ingin mengkompilasinya ke direktori js. Lalu lari:

jitter coffee js

Jitter berjalan di latar belakang sampai Anda menghentikannya (Ctrl + C), mengawasi perubahan baru.

Roger Garzon Nieto
sumber
8

Coffeescript + ExpressJS + Couchdb + Redis + Auth:

https://gist.github.com/652819

Shripad Krishna
sumber
30
Sial, itu banyak kata kunci.
bgw
6

Coba ini

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

Kemudian lakukan:

chmod +x demo.coffee
./demo.coffee

CoffeeScript memiliki integrasi yang cukup solid dengan node. Setelah modul 'coffee-script' dimuat, baik oleh require('coffee-script'), oleh she-bang yang saya demo'd di atas, atau dengan menjalankan coffee demo.coffee... sekali dimuat, Anda dapat digunakan require('./foo')untuk membawa masukfoo.coffee

Dave Dopson
sumber
Terima kasih, itu sangat berguna!
Mike Ellis
0

Jika Anda ingin mengkompilasi semua file naskah Anda secara otomatis (dalam satu direktori termasuk subdir) setiap kali mereka berubah menjadi javascript, cukup gunakan perintah ini:

find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc
Taner Topal
sumber
6
Apa yang salah dengan fungsionalitas naskah kopi bawaan? coffee -o lib/ -cw src/
aaaidan