ข้อ จำกัด ของฉันคืออะไรหากฉันต้องการโค้ด node.js และใช้ CoffeeScript ฉันสามารถทำอะไรก็ได้ที่ฉันสามารถทำได้ใน JS
ข้อ จำกัด ของฉันคืออะไรหากฉันต้องการโค้ด node.js และใช้ CoffeeScript ฉันสามารถทำอะไรก็ได้ที่ฉันสามารถทำได้ใน JS
คำตอบ:
ใช่ 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
ไม่เพียง แต่คุณสามารถเรียกใช้ไฟล์ CoffeeScript ได้โดยตรงใน Node ด้วย
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 ได้อย่างเท่าเทียมกันในตอนนี้ (หมายความว่าคุณต้องมีไฟล์กาแฟด้วย!)
วิธีนี้จะทำให้คุณต้องเขียนเพียงไฟล์เดียว (app.js) ในวานิลลาจาวาสคริปต์ แต่ข้อดีคือสภาพแวดล้อมการปรับใช้ของคุณไม่จำเป็นต้องมี coffeescript ในฐานะการพึ่งพาที่ติดตั้งทั่วโลกเริ่มต้นเพื่อเรียกใช้แอปของคุณ ในกรณีนี้คุณจะต้องคัดลอกรหัสของคุณและnpm install
จะติดตั้งแพ็คเกจทั้งหมดที่จำเป็น และnpm start
จะมีคุณขึ้นและทำงาน
วิดีโอสอน
ผมเคยเห็นชุดกวดวิชาที่ดีโดยเปโดร Teixeira เขาได้สร้างซีรีย์ทั้งหมดในแบบฝึกหัดโหนด เขามีการอ้างอิงถึง nodemon สำหรับการตรวจจับอัตโนมัติและการรวบรวมและการโหลดใหม่ของไฟล์. coffee ที่แก้ไข
คุณสามารถใช้Jitterการรวบรวมอย่างต่อเนื่องแบบง่าย ๆ สำหรับ CoffeeScript
npm install -g jitter
สมมติว่าคุณมีไฟล์ * .coffee จำนวนมากในไดเร็กทอรี coffee และต้องการรวบรวมไฟล์เหล่านั้นไปยังไดเร็กทอรี js จากนั้นเรียกใช้:
jitter coffee js
Jitter จะทำงานในพื้นหลังจนกว่าคุณจะยกเลิก (Ctrl + C) เพื่อดูการเปลี่ยนแปลงใหม่
ลองสิ่งนี้
#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"
จากนั้นทำ:
chmod +x demo.coffee
./demo.coffee
CoffeeScript มีการรวมกันอย่างแน่นหนากับโหนด เมื่อโมดูล 'coffee-script' ถูกโหลดแล้วโดยrequire('coffee-script')
she-bang ที่ฉันสาธิตด้านบนหรือโดยการเรียกใช้coffee demo.coffee
... เมื่อโหลดแล้วคุณสามารถrequire('./foo')
นำมาใส่ได้foo.coffee
หากคุณต้องการรวบรวมไฟล์ coffeescript ทั้งหมดของคุณโดยอัตโนมัติ (ในไดเรกทอรีเดียวรวมถึง subdir) ทุกครั้งที่เปลี่ยนเป็น javascript ให้ใช้คำสั่งนี้:
find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc
coffee -o lib/ -cw src/