मैं नोड.जेएस के लिए जेएस के बजाय कॉफीस्क्रिप्ट का उपयोग कर सकता हूं?


189

यदि मैं नोड.जेएस कोड करना चाहता हूं और कॉफीस्क्रिप्ट का उपयोग करना चाहता हूं तो मेरे प्रतिबंध क्या हैं? क्या मैं जेएस में कुछ भी कर सकता हूं?

जवाबों:


175

हाँ, CoffeeScript केवल शुद्ध JS में संकलित करता है, जो इसे नोड के साथ पूरी तरह से अनुकूल बनाता है।

नोड पर CoffeeScripts चलाने के लिए, आप या तो कर सकते हैं:

  • coffee -c example.coffeeसंकलन करने के लिए टाइप करें, इसके बाद node example.jsसंकलित जेएस को चलाने के लिए।
  • बस टाइप करें coffee example.coffee

2
लेकिन अन्य CoffeeScript फाइलों का उपयोग करते समय क्या होगा? मैं सब कुछ 1 CoffeeScript
Jiew मेंग

3
@ जेईई मेंग आप एक पूरी निर्देशिका को उसी तरह संकलित कर सकते हैं (उदाहरण-मार्ग को निर्देशिका पथ के साथ बदल सकते हैं), या requireआप require('coffee-script')पहले से जितनी देर हो सके कॉफ़ीस्क्रिप्ट फ़ाइलों को अनइंस्टॉल कर सकते हैं ।
डेविड तांग

1
क्या coffee example.coffeeविकास के लिए मुख्य रूप से चल रहा है ? या यह उत्पादन में करने के लिए पर्याप्त स्थिर है?
मर्मगूई

4
हाँ, दो विकल्पों में क्या अंतर है?
स्टीव बेनेट

4
कॉफी स्थापित करने के लिएsudo npm install -g coffee-script
दिमित्री पॉलुस्किन

89

इतना ही नहीं आप नोड के साथ सीधे कॉफीस्क्रिप्ट फ़ाइलों को चला सकते हैं

coffee source.coffee

आपको उनकी आवश्यकता भी हो सकती है जैसे कि वे जावास्क्रिप्ट फाइलें थीं। उदाहरण के लिए, यदि आपके पास lib.coffeeकोई निर्देशिका है, तो आप लिख सकते हैं

require './lib'

उसी निर्देशिका में किसी अन्य CoffeeScript फ़ाइल से। (जावास्क्रिप्ट फ़ाइल से ऐसा करने के लिए, आपको require 'coffee-script'शीर्ष पर जोड़ना होगा ।) इसलिए, आपको नोड के तहत स्पष्ट रूप से संकलन करने की आवश्यकता नहीं है, जब तक कि आप npm जैसे उपकरण के साथ तैनाती के लिए अपनी परियोजना की पैकेजिंग नहीं कर रहे हैं।

एक चेतावनी: स्टैक के निशान में, आप जिस संख्या को संकलित जावास्क्रिप्ट का संदर्भ देंगे, तब भी जब आप सीधे कॉफीस्क्रिप्ट चला रहे हों (ताकि आपके पास जावास्क्रिप्ट तक पहुंच न हो)। बहुत सारे लोग इसे ठीक करने की कोशिश कर रहे हैं, लेकिन यह एक बड़ी चुनौती है।


1
क्लाइंट-साइड कॉफी / जेएस के साथ क्या होता है?
फैंसी

क्लाइंट-साइड को HTML पेज में शामिल करने के लिए आपको विज्ञापन दुभाषिया की आवश्यकता होती है।
डेनियल व्रुत


1
जहां तक ​​मैं बता सकता हूं कि यह जेएस से कॉफी के लिए आपके सिर में सहसंबंध के बिना डीबग करने में सक्षम नहीं है।
एरिक

1
जेएस रूपांतरण नियमों के लिए कॉफ़ीस्क्रिप्ट बहुत सरल है, वे सभी अच्छी तरह से प्रलेखित हैं :)
केडरे

57

हां, यहां एक अलग और सरल उत्तर है। आपको 2 चरण करने की आवश्यकता है।

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

  2. है require('coffee-script')पहली पंक्ति है कि में मार डाला जायेगा रूप में server.jsकी app.js। ( अद्यतन: कॉफी स्क्रिप्ट 1.7 के बाद से, आपको करना होगाrequire('coffee-script/register'))

यह आपके ऐप में कॉफ़ीस्क्रिप्ट कंपाइलर को पंजीकृत करता है और आप कॉफ़ी फ़ाइलों और js फ़ाइलों का समान रूप से इलाज शुरू कर सकते हैं (इसका अर्थ है कि आपको कॉफ़ी फ़ाइलों की भी आवश्यकता हो सकती है!)।

इस पद्धति से आपको वेनिला जावास्क्रिप्ट में सिर्फ एक फ़ाइल (app.js) लिखने की आवश्यकता होगी। लेकिन लाभ यह है कि आपके तैनात वातावरण को आपके ऐप को चलाने के लिए प्रारंभिक रूप से स्थापित निर्भरता के रूप में कॉफ़ीस्क्रिप्ट की आवश्यकता नहीं है। इस स्थिति में, आपको बस अपने कोड की प्रतिलिपि बनानी npm installहोगी , और सभी आवश्यक पैकेजों को स्थापित करना होगा। और npm startतुम उठ कर चल रहे होते


2
1.7 अपडेट @gprasant के बारे में नोट के लिए धन्यवाद, मैं अपने बाल खींच रहा था सोच रहा था कि इसने काम करना क्यों बंद कर दिया।
pix0r

15

वीडियो शिक्षण

मैंने पेड्रो टेक्सेरा द्वारा एक शानदार ट्यूटोरियल श्रृंखला देखी है । वह नोड ट्यूटोरियल पर एक पूरी श्रृंखला बना रहा है। वह ऑटो का पता लगाने और संकलन और संपादित किए गए कॉफ़ी फ़ाइलों को फिर से लोड करने के लिए नोडमॉन का संदर्भ शामिल करता है।

  1. कॉफ़ीस्क्रिप्ट और Node.js
  2. Nodemon

Nodetuts.com लिंक के ऊपर टूट रहे हैं। हालांकि उस साइट पर ट्यूटोरियल बहुत अच्छे लगते हैं।
ekillaby

धन्यवाद, मूल लिंक गंतव्य गायब हो गए / चले गए। उन्हें Google खोज में जो पता चला है उसे सेट करें, Vimeo वीडियो @countfloortiles
मार्क एस्सेल

3
एक महान NodeJS डेमन / परिसंपत्ति पाइपलाइन समाधान के लिए brunch.io देखें । कॉफी, सीएसएस सुपरसेट और अधिक शामिल हैं।
लिंकन बी

यह कुछ समय पहले देखा गया था, लेकिन तब से दौरा नहीं किया है। इसे लाने के लिए धन्यवाद
मार्क एस्सेल

11

आप कॉफी के लिए एक सरल निरंतर संकलन जिटर का उपयोग कर सकते हैं ।

npm install -g jitter

मान लें कि आपके पास कॉफ़ी डायरेक्टरी में * .cfish फ़ाइलों का एक गुच्छा है, और उन्हें js डायरेक्टरी में संकलित करना चाहते हैं। फिर भागो:

jitter coffee js

जब तक आप इसे (Ctrl + C) समाप्त नहीं करते हैं, तब तक पृष्ठभूमि में घबराहट चलती रहती है।



6

इसे इस्तेमाल करे

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

फिर करो:

chmod +x demo.coffee
./demo.coffee

CoffeeScript में नोड के साथ बहुत ठोस एकीकरण है। एक बार जब 'कॉफी-स्क्रिप्ट' मॉड्यूल लोड हो जाता है, या तो require('coffee-script')वह, मेरे द्वारा किए गए धमाके के ऊपर, या चलाकर coffee demo.coffee... एक बार लोड होने के बाद, आप इसमें require('./foo')ला सकते हैंfoo.coffee


धन्यवाद, यह बहुत उपयोगी है!
माइक एलिस

0

यदि आप स्वचालित रूप से अपनी सभी कॉफ़ीस्क्रिप्ट फ़ाइलों को (सबडिर सहित एक निर्देशिका में) संकलित करना चाहते हैं, तो हर बार वे जावास्क्रिप्ट में बदलते हैं, बस इस कमांड का उपयोग करें:

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

6
अंतर्निहित कॉफ़ीस्क्रिप्ट कार्यक्षमता के साथ क्या गलत है? coffee -o lib/ -cw src/
5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.