2011-07-12 22 views
19

मुझे पता है कि Google क्लोजर कंपाइलर टाइपिंग की जांच करता है- लेकिन क्या कोई विकल्प है, अधिमानतः लाइब्रेरी और ऑप्टिमाइज़र के साथ इतना कसकर नहीं है?जावास्क्रिप्ट स्थिर प्रकार की जांच की वर्तमान स्थिति क्या है?

यदि नहीं, तो क्या Google क्लोजर कंपाइलर केवल स्थिर विश्लेषण करने का कोई तरीका है?

(स्थिर विश्लेषण यहाँ से, मैं तर्क और इतना है कि मैं अगर मैं एक टाइपो बना या गलत प्रकार से पारित मुझे चेतावनी देने के लिए कुछ के माध्यम से चला सकते हैं के लिए प्रकार को परिभाषित करने की तरह महत्व होता है।)

+0

मुझे लगता है कि आप इसे विपरीत दिशा में जा रहे हैं। टाइपिंग जांच कंपाइलर की संकलन प्रक्रिया की एक विशेषता है। संकलन की सुविधा के लिए यह वास्तव में स्टैंड-अलोन का उपयोग करने का इरादा नहीं है क्योंकि यह कंपाइलर सुविधाओं पर काफी निर्भर करता है। हालांकि, आपको कंपाइलर का उपयोग करने के लिए क्लोजर लाइब्रेरी का उपयोग करने की आवश्यकता नहीं है। –

+0

मुझे पता है कि यही कारण है कि मैं विकल्पों की तलाश में हूं। –

+0

ठीक है, क्लोजर-लिंटर नामक कुछ है जो आप चाहते हैं ... –

उत्तर

2

वहाँ Doctor JS है, जो एक मोज़िला प्रोजेक्ट है जो मुख्य रूप से (जैसा कि मैं इसे समझता हूं, कम से कम) जेएस के लिए टाइप-चेकिंग करता है।

+0

यह उपयोगी लगता है, हालांकि जहां तक ​​मैं देख सकता हूं कि इसे सीधे कमांड लाइन से चलाने के लिए कोई तरीका नहीं है (उदाहरण के लिए, निर्माण/परीक्षण स्क्रिप्ट के अंदर उपयोग के लिए)। क्या पहुंच का ऐसा साधन है? –

+0

मैंने अपनी स्क्रिप्ट्स में से एक पर कोशिश की और यह काम नहीं किया - कहा कि यह काम नहीं कर रहा था। फिर इसे एक बहुत ही छोटी लिपि पर कोशिश की और यह काम किया, इसलिए मुझे नहीं पता कि यह बड़ी स्क्रिप्ट पर काम नहीं करता है या अगर इसमें बग या क्या है। – jfriend00

+0

यह [गीथूब] (https://github.com/mozilla/doctorjs) पर उपलब्ध है, इसलिए आप इसे स्थानीय रूप से स्थापित करने और चलाने का प्रयास कर सकते हैं। –

0

माइक्रोसॉफ्ट के एजेक्स मिनीफायर जेएस फ़ाइल में किए जाने वाले प्रीपे की मात्रा के बारे में थोड़ा अधिक आराम से इसके परिणाम प्राप्त करने के लिए थोड़ा अधिक आराम से है। आप चूक के साथ चलाने के लिए और है कि अभी भी बाहर कोड के साथ काम करता एक बेहद न्यूनतम किया गया फ़ाइल बाहर निकल सकते हैं: http://ajaxmin.codeplex.com/

लेकिन, दोनों बंद संकलक और अजाक्स minifier केवल मूलभूत linting परे स्थिर विश्लेषण सीमित कर सकते हैं क्योंकि कैसे जावास्क्रिप्ट है की, बनाया गया है। एक अविकसित संपत्ति तक पहुंचने के लिए केवल अपरिभाषित चर की जांच की जा सकती है, इसका अर्थ यह है कि इसे वैश्विक दायरे में घोषित करना है, किसी ऑब्जेक्ट को एक वैरिएबल को असाइन करना जिसमें कोई संख्या कानूनी है, इत्यादि। जेएस में बहुत कुछ कानूनी है जो आपकी सामान्य भाषा है (जावा, सी #) सीमाओं से बाहर मानता है, इसलिए किसी विशिष्ट कंपाइलर के लिए प्रकार, सीमाएं और अपेक्षाओं को घोषित किए बिना आप दुर्भाग्य से उन त्रुटियों में सीमित हैं जिन्हें आप रोक सकते हैं।

मुझे कुछ ऐसा कुछ और दिलचस्पी होगी जो बड़े 2 (एमएस और Google) के बीच बदल सकती है। यह आईडीई समर्थन के लिए उपयोगी होगा, उन्नत अनुकूलन के साथ कोड आकार का परीक्षण, आदि

0

मैं इंटेलिज विचार/वेबस्टॉर्म संपादक से काफी खुश हूं, जो jsdoc को पार करता है और संभावित या वास्तविक प्रकार की सुरक्षा को ध्वजांकित करने के लिए अपना स्वयं का स्थिर विश्लेषण करता है त्रुटियों। यह काफी उपयोगी साबित हुआ है, हालांकि विरासत को कुछ आम ढांचे के साथ काम करने के लिए थोड़ा सा काम करने की आवश्यकता थी। जावास्क्रिप्ट प्रोटोटाइप विरासत के साथ संभव दृष्टिकोणों के कारण, कंपाइलर को अन्य भाषाओं की तुलना में थोड़ा और मदद चाहिए।

यह एक वाणिज्यिक उपकरण है, लेकिन मैं इसे जावा, पीएचपी, जावास्क्रिप्ट, पायथन और रूबी परियोजनाओं के लिए उपयोग करने में सक्षम हूं, सभी कुछ सुंदर सभ्य स्थिर विश्लेषण और मददगारों को रिफैक्टरिंग के साथ। मैं emacs के साथ बहुत कुछ करता था और jshint और बंद कंपाइलर के लिए node.js प्रक्रियाओं को चलाता था, लेकिन यह बहुत कम भंगुर है।

संबंधित मुद्दे