2012-04-11 18 views
22

मैं अपनी परियोजना में यूनिट परीक्षण शुरू कर रहा हूं और इसके लिए, मुझे खुद को package.json फ़ाइल बनाने की आवश्यकता है।पैकेज.जेसन पीढ़ी/एनपीएम अप्रयुक्त पैकेज

पहला प्रश्न है, जो unit testing suite आप उपयोग कर रहे हैं? मैं mocha देख रहा हूं जो Node.js परियोजनाओं के लिए बहुत अधिक मानक प्रतीत होता है।

दूसरा प्रश्न है: क्या package.json फ़ाइल उत्पन्न करने का कोई जादुई तरीका है? (निर्भरता और संस्करणों के लिए)

तीसरा सवाल है: मैं npm packages का एक बहुत का परीक्षण किया गया है अपने प्रोजेक्ट के विकास और अब मैं शायद अप्रयुक्त संकुल की एक बहुत कुछ के साथ अटक कर रहा हूँ, जबकि। क्या यह बताने का कोई तरीका है कि कौन सा बेकार है? (मैंने देखा npm list installed जो उपयोगी है)

+2

http://npmjs.org/doc/init.html शायद एनपीएम प्रोजेक्ट बनाने का सबसे आसान तरीका है। और मैं आपको सलाह देता हूं कि http://npmjs.org/doc/json.html पढ़ें और खुद को अच्छी तरह से प्रयुक्त और परीक्षण किए गए पैकेज जैसे एक्सप्रेस या एनपीएम से खुद को प्रेरित करें। –

+0

आपको वास्तव में तीन अलग-अलग प्रश्न पूछना चाहिए। – Domenic

+1

वाह! बहुत अच्छे जवाब! सभी के लिए धन्यवाद, यह बहुत उपयोगी है! रखो और आओ! – TomShreds

उत्तर

6
  1. मैं मोचा का भी उपयोग कर रहा हूं।इसमें कोड कवरेज, बीडीडी, टीडीडी, ब्राउज़र में चलता है। यह बहुत पूर्ण है और मुझे लगता है कि टीजे नामक सबसे शानदार जावास्क्रिप्ट/नोड.जेएस प्रोग्रामर में से एक है।

  2. अनुमान लगाने के लिए लगभग असंभव है कि कौन से संस्करण का उपयोग करना है। क्योंकि एनपीएम नहीं जानता कि कौन सा संस्करण निर्भर करता है। आप शायद node-detective जैसे कुछ का उपयोग कर सभी निर्भरताओं को स्थापित कर सकते हैं। फिर आप जावास्क्रिप्ट के भीतर से npm.js का उपयोग करके उन्हें इंस्टॉल कर सकते हैं। शायद मैं भविष्य में इसका सामना करना चाहूंगा।

  3. मैं शायद सभी निर्भरताओं को भी हटा दूंगा, अगले चरण को चरण (2) का उपयोग करके आवश्यक निर्भरताएं स्थापित कर दूंगा। लेकिन मौजूदा एचडी के साथ डिस्क-स्पेस अब इतना बड़ा मामला नहीं है।

पी.एस: मुझे लगता है मैं भी अपने तीसरा सवाल उत्तर देना Domenic

साथ
3
  1. मैं शपथ का उपयोग कर रहा हूं। यह बहुत अच्छा है, लेकिन सही नहीं है। मुझे डीओएस & जैसे एसिंक कॉलबैक की वजह से नोड में यूनिट परीक्षण अक्सर चुनौतीपूर्ण होता है, और ज्यादातर शीर्ष स्तर की कार्यक्षमता का परीक्षण कर रहे हैं।

  2. यहां आपका जादू है: Managing Node.js Dependencies with Shrinkwrap

  3. यह जानने का एकमात्र तरीका है कि आप किस पैकेज का उपयोग कर रहे हैं, यह जानना है। आप इस प्रोग्रामेटिक रूप से उत्पन्न नहीं कर सकते हैं। मेरी सलाह पैकेज को आक्रामक रूप से हटाने के लिए होगी, फिर सभी कार्यक्षमता को दोबारा बनाए रखें - यदि यह टूट जाती है, तो आपको पता चलेगा कि आपको अपने एक पैकेज को पुनर्स्थापित करने की आवश्यकता है।

+0

बिंदु # 3 – Domenic

34
  1. मैं मोचा उपयोग कर रहा हूँ।

  2. npm init

  3. npm ls "बाहरी" अगले जो कि आपके package.json में नहीं हैं करने के लिए सूची जाएगा। लेकिन, ऐसा लगता है कि आपके पास अभी तक पैकेज नहीं है। जेसन अभी तक।


मूल रूप से, अपने कार्यप्रवाह बहुत पिछड़े है। यहां बताया गया है कि यह कैसे काम करना है:

  1. npm init के साथ एक नई परियोजना शुरू करें। इसकी कोई निर्भरता नहीं है।
  2. ओह, मैं पैकेज का उपयोग करना शुरू करना चाहता हूं, express कहें? इसे निर्भरता के तहत package.json पर जोड़ें, फिर npm install चलाएं।
  3. ओह, मैं विकास के लिए पैकेज का उपयोग शुरू करना चाहता हूं, mocha कहें? इसे package.json पर devDependencies के अंतर्गत जोड़ें, फिर npm install चलाएं।

आपके पास मैन्युअल रूप से स्थापित संकुल के साथ कुछ मौजूदा कोड है (npm install <packageName> के माध्यम से), जो एक गड़बड़ है। मैं उपर्युक्त वर्कफ़्लो को शुरू करने और पालन करने का सुझाव देता हूं।

+0

के लिए +1 जब आप पिछड़े हैं तो आप पूरी तरह से सही हैं। यह एक छोटा परीक्षण प्रोजेक्ट माना जाता था, लेकिन परीक्षण की तुलना में मैं बड़ा था और परीक्षण के लिए नहीं था। आपके उत्तर के लिए धन्यवाद! – TomShreds

+9

आप 'npm इंस्टॉल कर सकते हैं - सेव' जो स्वचालित रूप से इसे आपके 'package.json' में जोड़ देगा। अधिक जानकारी के लिए यहां देखें: https://npmjs.org/doc/install.html। मुझे वर्कफ़्लो डोमेनिक से उपरोक्त सुझावों की तुलना में यह आसान लगता है। – stephenbez

+3

'देवता-देवता' के लिए 'devaveependencies '(उल्लिखित लिंक में डॉक्टर) – chakrit

2

सहमत हूँ, आप Sweeper का उपयोग अप्रयुक्त निर्भरता सूची कर सकते हैं, और उन्हें अपने package.json से उन्हें हटा दें। बस npm install -g sweeper पर अपनी प्रोजेक्ट निर्देशिका पर कमांड लाइन पर sweeper पर कॉल करें।

npm prune

सभी स्थापित मॉड्यूल अब अपने package.json में उल्लेख कर रहे है कि निकाल देंगे:

20

तीसरा सवाल उत्तर देने के लिए।


और आपको वास्तव में 3 अलग-अलग प्रश्न पूछना चाहिए।

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