मैं एक वेब सेवा के कार्यान्वयन पर काम कर रहा हूं जहां हम कॉफीस्क्रिप्ट में हमारे फ्रंट एंड कोड लिख रहे हैं। समस्या जिस पर मैंने ठोकर खाई है, जबकि परियोजना बढ़ रही है कार्यक्षमता को विभिन्न फाइलों में अलग किया जाना है। मुझे वास्तव में एक साधारण संरचना है जहां utils.coffee
फ़ाइल में मेरे पास सामान्य कार्य होंगे जो प्रत्येक पृष्ठ से और प्रत्येक अलग फ़ाइल पर आवश्यक होंगे, मेरे पास page_foo.coffee
page_bar.coffee
विशिष्ट कार्य होंगे। मैं इसे ठीक से कैसे व्यवस्थित कर सकता हूं इसलिए मैं यह भी सुनिश्चित करता हूं कि utils.coffee
पहले लोड हो और सभी से सुलभ हो?एकाधिक कॉफीस्क्रिप्ट फ़ाइलों को व्यवस्थित करना
उत्तर
आप देख सकते हैं कि यह gae-init प्रोजेक्ट में कैसे किया गया है (अस्वीकरण: मैं निर्माता हूं)।
मूल विचार यह है कि आपके पास एक विशिष्ट निर्देशिका में सभी *.coffee
फ़ाइलें हैं, और फिर एक बिल्ड स्क्रिप्ट जो सभी फ़ाइलों को संकलित करती है और उन्हें सही पथ में डालती है।
चूंकि आप इसे विकसित करते समय आसानी से डीबग करने में सक्षम होना चाहते हैं, तो बिल्ड स्क्रिप्ट में उन्हें संकलित करने का विकल्प होना चाहिए और & को गठबंधन करने के लिए एक और विकल्प होना चाहिए।
धन्यवाद मैंने इसकी उत्कृष्टता के कारण केवल अपना जवाब बदल दिया। यह न केवल कॉफी के लिए एक प्रदर्शन अनुकूलित संरचना प्रदान करता है बल्कि औजारों का एक बड़ा ढेर जो मैं आमतौर पर उपयोग करता हूं। – topless
मुझे यह भी पता नहीं था कि आप एक जवाब "अस्वीकार्य" कर सकते हैं :) यदि आप उस मार्ग पर जाते हैं तो आपको कॉफीस्क्रिप्ट की अपनी [केक] (http://coffeescript.org/#cake) उपयोगिता में देखना चाहिए (ढेर में एक कम भाषा फिर) –
यह एक अच्छा विचार है, लेकिन यह आपको एक ही नाम के साथ 2 फाइलें रखने से रोकता है, जैसे विचार/navItem और मॉडल/navItem – dezman
निष्पादन आदेश ब्राउज़र पर सम्मानित है, इसलिए पहले utils.js
पहले शामिल करें।
कोडकिट (http://incident57.com/codekit/) जैसे टूल को संकलित और छोटा कर सकते हैं + अपने सभी .coffee
फ़ाइलों में एक .js
में शामिल हो सकते हैं, यह भी एक शेल स्क्रिप्ट के साथ करना आसान है।
यदि आपका ऐप वास्तव में बड़ा है, तो require.js और Asynchoronous Module Loading पर पढ़ें। यह आप बहुत आसानी से निर्भरता प्रबंधन करने के लिए और केवल लोड क्या आवश्यक है की अनुमति देगा:
# page_foo.coffee
define ['lib/utils'], ($) ->
// code that uses 'utils'
+1 - यह हमारे लिए वास्तव में अच्छा काम करता है। – domenukk
मैं क्या, एक पूर्व निर्धारित अनुक्रम में शामिल होने और फाइलों को संकलित करने के लिए एक केक कार्य लिखने के लिए उदाहरण
task 'build', 'join and compile *.coffee files', ->
exec "coffee -j #{outJS}.js -C#{strFiles}", exerr
के लिए है जहां outJS
फ़ाइल नाम है जहां मैं संकलित जावास्क्रिप्ट और strFiles
फ़ाइल नामों की एक स्ट्रिंग है
इसके अतिरिक्त आप YUICompressor या अपने पसंदीदा टूल का उपयोग करके संकलित कोड को छोटा करने के लिए कार्य जोड़ सकते हैं। और विकास देख दौरान,, में शामिल होने के संकलन भी स्वचालित किया जा सकता
task 'watch', 'watch and compile changes in source dir', ->
watch = exec "coffee -j #{outJS}.js -cw #{strFiles}"
watch.stdout.on 'data', (data)-> process.stdout.write data
सुनिश्चित करते हुए this gist
आपको लगता है कि आप उनमें से शीर्ष पर की आवश्यकता होगी फ़ाइलों को शामिल करने की क्षमता है पर एक नज़र डालें, आपकी अंतिम ".js" फ़ाइल (जो आपकी सभी कॉफीस्क्रिप्ट फ़ाइलों का विलय भी होगी) ब्राउज़र के अंदर उपयोग के लिए उचित क्रम में सब कुछ है।
डॉक्स पर एक नज़र डालें:
http://github.com/serpentem/coffee-toaster
यह एक पैकेजिंग प्रणाली है कि जब सक्षम अपनी कक्षाओं के लिए घोषणाओं नामस्थान के रूप में आप ऐसा चाहते हैं, तो अपने फ़ोल्डर के पदानुक्रम का उपयोग करेगा, तो आप वर्गों से फैली कर सकते हैं के साथ भी आता है एक से अधिक फ़ाइलों, जैसे आयात और पुत्र करते हैं: निर्माण विन्यास
#<< another/package/myclass
class SomeClass extends another.package.MyClass
अत्यंत सरल है:
# => SRC FOLDER
toast 'src_folder'
# => VENDORS (optional)
# vendors: ['vendors/x.js', 'vendors/y.js', ... ]
# => OPTIONS (optional, default values listed)
# bare: false
# packaging: true
# expose: ''
# minify: false
# => HTTPFOLDER (optional), RELEASE/DEBUG (required)
httpfolder: 'js'
release: 'www/js/app.js'
debug: 'www/js/app-debug.js'
यहां एक डीबग विकल्प भी है जो डिबगिंग प्रक्रियाओं और अन्य उपयोगी सुविधाओं को आसानी से फ़ाइलों को संकलित करता है।
मैं एक जटिल नेमस्पेस का पर्दाफाश कैसे कर सकता हूं उदा। acme.sales.admin ताकि यह मेरे ऐप के लिए जड़ है? –
आप इन फ़ोल्डर्स को एक दूसरे के अंदर बनाते हैं और अपनी फाइलें "acme/sales/admin/yourfile.coffee" के अंदर डालते हैं। –
कॉफी टॉस्टर [बंद कर दिया गया है] (https://github.com/arboleya/coffee-toaster/wiki) और एक नई परियोजना के लिए फोर्क किया गया, [पोल्वो] (https://github.com/polvo/polvo)। –
- 1. मुझे अपनी एक्सकोड परियोजना फ़ाइलों को कैसे व्यवस्थित करना चाहिए?
- 2. एकाधिक जावास्क्रिप्ट फ़ाइलों को विलय करना
- 3. एकाधिक गुण फ़ाइलों को लोड करना
- 4. एक्सटेंशन विधियों को व्यवस्थित करना
- 5. रेल - जावास्क्रिप्ट से कॉफीस्क्रिप्ट को कॉल करना
- 6. आप अपनी संसाधन फ़ाइलों को व्यवस्थित कैसे करते हैं?
- 7. आउटपुट जब केकफ़ाइल कार्य से कॉफीस्क्रिप्ट फ़ाइलों को देखता है
- 8. लोगों के समूहों को व्यवस्थित रूप से व्यवस्थित करना
- 9. जावास्क्रिप्ट फ़ाइलों को व्यवस्थित करने का सबसे अच्छा तरीका
- 10. कॉफीस्क्रिप्ट -
- 11. एकाधिक .woff फ़ाइलों को एक
- 12. कॉफीस्क्रिप्ट
- 13. एकाधिक फ़ाइलों में जेएस फ़ंक्शंस को व्यवस्थित करने के लिए कैसे करें
- 14. इंटरफेस व्यवस्थित करना
- 15. कॉफीस्क्रिप्ट
- 16. कॉफीस्क्रिप्ट
- 17. कॉफीस्क्रिप्ट
- 18. क्लोजर कोड व्यवस्थित करना
- 19. हास्केल टेस्ट व्यवस्थित करना
- 20. एकाधिक फ़ाइलों
- 21. कॉफीस्क्रिप्ट
- 22. कॉफीस्क्रिप्ट
- 23. कॉफीस्क्रिप्ट
- 24. कॉफीस्क्रिप्ट
- 25. नोड.जेएस: कॉफीस्क्रिप्ट
- 26. एकाधिक सीएसएस फ़ाइलों को एक
- 27. एकाधिक Xaml फ़ाइलों में WPF इंटरफ़ेस को विभाजित करना
- 28. लिनक्स: एकाधिक फ़ाइलों को विलय करना, प्रत्येक नई लाइन
- 29. टाइपस्क्रिप्ट: एकाधिक फ़ाइलों में मॉड्यूल को विभाजित करना
- 30. YUIcompressor के साथ एकाधिक जावास्क्रिप्ट फ़ाइलों को संपीड़ित करना?
यह कॉफीस्क्रिप्ट के लिए विशिष्ट नहीं है, लेकिन जावास्क्रिप्ट के साथ एक सामान्य समस्या है। यह कहा जा रहा है ... देखें ["संरचनात्मक कॉफ़ीस्क्रिप्ट कोड?"] (Http://stackoverflow.com/questions/6150455/structuring-coffeescript-code), और विशेष रूप से मेरा उत्तर [यहां] (http://stackoverflow.com/प्रश्न/6150455/संरचना-coffeescript-कोड/8303780 # 8303780)। Require.js के लिए – shesek