2013-04-08 14 views
8

क्या गैज के हेड हैश के साथ एक पैकेज.जेसन (https://npmjs.org/doc/json.html) के संस्करण संख्या को स्वचालित रूप से अपडेट करने का कोई तरीका है? मैं प्रोजेक्ट की package.json फ़ाइल के अंदर version: 1.0.0+rev82e4b91cfe42cd86e9453b4987b9cc446566de6 जैसे कुछ लेना चाहता हूं। प्लस से पहले Eveything मैन्युअल रूप से सेट किया गया है और जब भी मैं कुछ करता हूं तो हैश अपडेट किया जाता है।गिट हैश को कैसे लिखें (नोड्स) package.json?

क्या यह संभव है? मुझे इस विषय पर कुछ भी नहीं मिला: -/

उत्तर

-2

स्वचालित रूप से किस बिंदु पर? संभावनाएं हैं:

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

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

http://gruntjs.com/plugins

आप एक बनाने खत्म करते हैं, तो मुझे पता है के रूप में मैं इसी तरह की प्रक्रिया :)

मेरे मामले में, मैं SVN उपयोग कर रहा हूँ की जरूरत होती भी कर रहा हूँ, लेकिन एक ही पैटर्न चाहते हैं । मैं एसवीएन संशोधन संख्या को अपने निर्माण संख्या के रूप में रखना चाहता हूं।

मेरी सिफारिश है कि फ़ाइल में बिल्ड नंबर को रिक्त स्थान छोड़ दें और अपने निर्माण वातावरण को नए निर्माण के लिए गिट क्लोन करें और बिल्ड नंबर अपडेट करें। फिर बनाए गए पैकेजों में हमेशा उनके बारे में कुछ होता है जो कि गिट प्रतिबद्धता से संकेत मिलता है।

मुझे लगता है कि विकास के लिए, आपको वास्तव में इसकी आवश्यकता नहीं है क्योंकि आप हमेशा यह पूछ सकते हैं कि आपने किस संस्करण को चेक आउट किया है। एक गंट-गिट प्लगइन है जिसे आप शायद देव में संस्करण को समझने के लिए उपयोग कर सकते हैं। (शायद गिट शो?)

+0

मैंने अभी गिट वर्णन का पता लगाया है। यह भी उपयोगी हो सकता है। यह आपको संक्षेप में sha1 प्रतिबद्ध आईडी और सबसे हालिया टैग के बाद से काम करने की गिनती देता है। https://www.kernel.org/pub/software/scm/git/docs/git-describe.html – Brandon

+0

डाउनवोट क्यों? – Brandon

1

इसका हिस्सा git-describe के साथ हल किया जा सकता है और वास्तव में एक गंदे प्लग-इन है जो आपके लिए (https://github.com/mikaelkaron/grunt-git-describe/) लपेटता है।

दूसरा भाग आपको मैन्युअल रूप से करना होगा (अभी अभी), लेकिन मुझे वास्तव में इस समय एक ही समस्या है, इसलिए मैं आपके लिए (और खुद) एक गंदे प्लग-इन को हैक करने की कोशिश कर सकता हूं।

पूर्ण प्रकटीकरण, मैं ऊपर grunt-git-describe का लेखक हूं।

+2

यह किसी उत्तर के बजाय आपकी प्लगइन के विज्ञापन की तरह लगता है; इसे उत्तर देने के लिए, आपको दिखाना चाहिए (आपके उत्तर में) उपयोगकर्ता की वास्तविक समस्या को हल करने के लिए आप अपनी प्लगइन को कैसे कार्यान्वित करेंगे। –

1

git rev-parse HEAD वर्तमान हेड ब्रांच को अंतिम प्रतिबद्धता लिख ​​देगा जिसे आप अपने निर्माण में चलाने के दौरान अपने पैकेज में संस्करण संख्या में जोड़ सकते हैं।

कई git rev-xxx कमांड हैं जो किसी भी अतिरिक्त सामान के लिए उपयोगी हो सकते हैं जो आप रिकॉर्ड करना चाहते हैं।

1

ऐसा प्रतीत होता है कि यह सीधे प्लगइन के बिना किया जा सकता है। npm version $(git describe)git describe से मान लेगा और package.json में संस्करण का मान अपडेट करेगा।

(मैं वर्तमान में एनपीएम संस्करण 3.10 का उपयोग कर रहा हूं।)

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