AskClean

प्रोजेक्ट गँवाए बिना Mac पर node_modules कैसे हटाएँ

AskClean टीम · अपडेट: 2026-11-02

किसी प्रोजेक्ट का node_modules फ़ोल्डर तब डिलीट किया जा सकता है, जब package.json और सही लॉकफ़ाइल सुरक्षित हों और उसकी डिपेंडेंसी अब भी डाउनलोड हो सकती हों। पहले हर प्रोजेक्ट का आकार मापें, चल रहे टूल बंद करें, सोर्स और कॉन्फ़िगरेशन सुरक्षित रखें, फिर उसी पैकेज मैनेजर से दोबारा इंस्टॉल करें। node_modules को npm का साझा डाउनलोड कैश न समझें: दोनों की जगह, काम और रिकवरी की कीमत अलग है।

रोबोटिक भुजा डिपेंडेंसी नेटवर्क से एक ब्लॉक उठाकर रीसाइक्लिंग डिब्बे में रख रही है; काँच के खाँचे में रखा नीला ब्लॉक, ब्लूप्रिंट और ताला सुरक्षित हैं
सिर्फ़ दोबारा बन सकने वाला डिपेंडेंसी फ़ोल्डर हटाएँ; प्रोजेक्ट का मैनिफ़ेस्ट, लॉकफ़ाइल, कॉन्फ़िगरेशन और सोर्स सुरक्षित रखें।

node_modules को प्रोजेक्ट और npm कैश से अलग पहचानें

node_modules किसी एक प्रोजेक्ट की इंस्टॉल की हुई डिपेंडेंसी ट्री है, जो तभी दोबारा बन सकती है जब उसके सारे इनपुट और ज़रूरी डाउनलोड उपलब्ध हों। इसे हटाने के बाद, दोबारा इंस्टॉल होने तक प्रोजेक्ट न चलेगा, न बिल्ड होगा। package.json, लॉकफ़ाइल, सोर्स कोड, कॉन्फ़िगरेशन, पैच, वर्कस्पेस फ़ाइलें और Git हिस्ट्री इसे दोबारा बनाने की विधि हैं — इन्हें कभी न हटाएँ, और एक डिपेंडेंसी फ़ोल्डर हटाने के लिए पूरा प्रोजेक्ट फ़ोल्डर कभी डिलीट न करें। npm का साझा डाउनलोड कैश आम तौर पर ~/.npm में रहता है; उसका दायरा और रिकवरी की कीमत अलग है।

पक्का करें कि डिपेंडेंसी सचमुच दोबारा बन सकती हैं

लॉकफ़ाइल से इंस्टॉल का नतीजा तय रहता है, लेकिन वह पैकेजों का बैकअप नहीं है। रिपॉज़िटरी का पैकेज मैनेजर और उसका वर्शन पहचानें, और package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock या bun.lockb सुरक्षित रखें। npm v12 अब npm-shrinkwrap.json नहीं पढ़ता; अगर किसी पुराने प्रोजेक्ट में वही अकेली लॉकफ़ाइल है, तो उसका नाम package-lock.json कर दें — पहले से मौजूद package-lock.json को कभी न बदलें, न उस पर ओवरराइट करें। निजी रजिस्ट्री, VPN, Git और file: डिपेंडेंसी, लोकल वर्कस्पेस, बाहरी डाउनलोड और नेटिव टूलचेन की उपलब्धता भी जाँचें। सिर्फ़ node_modules के अंदर किया गया कोई भी बदलाव फ़ोल्डर हटते ही हमेशा के लिए चला जाएगा।

  1. प्रोजेक्ट की रूट डायरेक्टरी में pwd और du -sh ./node_modules चलाएँ; macOS में ख़ाली जगह भी लिख लें।
  2. package.json, सही लॉकफ़ाइल और वर्कस्पेस कॉन्फ़िगरेशन जाँचें, और git status देखकर कमिट न हुए बदलावों का बैकअप लें; npm v12 में पुरानी npm-shrinkwrap.json का नाम तभी package-lock.json करें जब वही अकेली लॉकफ़ाइल हो और package-lock.json पहले से मौजूद न हो।
  3. निजी रजिस्ट्री, Git और file: डिपेंडेंसी, लोकल पैकेज, बाहरी डाउनलोड और बिल्ड टूल तक पहुँच जाँचें, और node_modules इस्तेमाल करने वाली सभी प्रक्रियाएँ — dev सर्वर, टेस्ट वॉचर, एडिटर — रोकें।
  4. सिर्फ़ जाँचा हुआ node_modules रद्दी में डालें, फिर सही रूट डायरेक्टरी से रिपॉज़िटरी के अपने पैकेज मैनेजर और उसकी frozen-lockfile प्रक्रिया से दोबारा इंस्टॉल करें।
  5. बिल्ड, टेस्ट और लिंट चलाएँ, ऐप चालू करके देखें, जगह फिर मापें, और सारी जाँच पास होने के बाद ही रद्दी ख़ाली करें।

node_modules को किसी पैकेज या हाथ से किए गए सुधार की इकलौती कॉपी न बनने दें। अगर डिपेंडेंसी का ठीक वही वर्शन अब डाउनलोड नहीं हो सकता और उसका सोर्स कहीं और सुरक्षित नहीं है, तो डिलीट करने के बाद पुराना प्रोजेक्ट शायद फिर कभी न चले।

सिर्फ़ एक जाँचा हुआ डिपेंडेंसी फ़ोल्डर हटाएँ

पुष्टि किए गए प्रोजेक्ट में Finder से सिर्फ़ node_modules को रद्दी में डालें — उसके ऊपर वाले प्रोजेक्ट फ़ोल्डर को नहीं। rm -rf ./node_modules रद्दी को दरकिनार करता है और इसे पलटा नहीं जा सकता; अगर इसे चलाना ही है, तो पहले pwd से पक्का करें कि आप सही प्रोजेक्ट रूट में हैं। package-lock.json आधिकारिक लॉकफ़ाइल हो, तो उसी रूट से npm ci चलाएँ; वरना रिपॉज़िटरी के हिसाब से pnpm install --frozen-lockfile, yarn install --immutable, Yarn Classic के लिए yarn install --frozen-lockfile या bun install --frozen-lockfile इस्तेमाल करें। मोनोरेपो को रूट लॉकफ़ाइल से चलने वाला एक ही डिपेंडेंसी सिस्टम मानें; pnpm का साझा स्टोर node_modules हटाने से साफ़ नहीं होता, और Yarn Plug'n'Play वाले रिपॉज़िटरी में आम node_modules होता ही नहीं।

दोबारा इंस्टॉल करके पूरा प्रोजेक्ट जाँचें

इंस्टॉल पूरा हो जाना पूरी रिकवरी का सबूत नहीं है। प्रोजेक्ट के दस्तावेज़ में बताए बिल्ड, टेस्ट, लिंट और लॉन्च के कदम चलाएँ; Node.js, macOS या टूलचेन बदल जाने पर नेटिव मॉड्यूल और lifecycle स्क्रिप्ट फिर भी विफल हो सकती हैं। दोबारा बनाने में डाउनलोड, फ़ाइलें निकालना, लिंक बनाना और कंपाइल करना शामिल हो सकता है। विफल होने पर हो सके तो रद्दी से फ़ोल्डर वापस लाएँ, एरर लॉग बचाएँ, और अगला प्रोजेक्ट साफ़ करने से पहले क्रेडेंशियल, नेटवर्क, वर्शन और लॉकफ़ाइल जाँचें। AskClean बड़े node_modules फ़ोल्डरों को प्रोजेक्ट के बिल्ड आउटपुट के रूप में दिखाता है और सोर्स कोड व .git हिस्ट्री को सफ़ाई सूची में नहीं आने देता; लेकिन पुष्टि किए गए फ़ोल्डर रद्दी में नहीं जाते, स्थायी रूप से डिलीट होते हैं — रिकवरी का मौक़ा चाहिए, तो फ़ोल्डर Finder से ख़ुद रद्दी में डालें।

डिलीट करने की सीमा और रिकवरी की कीमत

Mac पर बड़े node_modules फ़ोल्डर ढूँढें, सोर्स व लॉकफ़ाइल बचाएँ, हर प्रोजेक्ट की डिपेंडेंसी अलग से हटाएँ और npm, pnpm, Yarn या Bun से दोबारा इंस्टॉल करें।

चीज़ या कार्रवाईकहाँ जाँचेंनतीजा
node_modules को प्रोजेक्ट और npm कैश से अलग पहचानेंप्रोजेक्ट/node_modulesnode_modules किसी एक प्रोजेक्ट की इंस्टॉल की हुई डिपेंडेंसी ट्री है, जो तभी दोबारा बन सकती है जब उसके सारे इनपुट और ज़रूरी डाउनलोड उपलब्ध हों।
पक्का करें कि डिपेंडेंसी सचमुच दोबारा बन सकती हैंpackage.json + लॉकफ़ाइल + वर्कस्पेस कॉन्फ़िगरेशनलॉकफ़ाइल से इंस्टॉल का नतीजा तय रहता है, लेकिन वह पैकेजों का बैकअप नहीं है।
सिर्फ़ एक जाँचा हुआ डिपेंडेंसी फ़ोल्डर हटाएँरद्दी / पैकेज मैनेजर से दोबारा इंस्टॉलपुष्टि किए गए प्रोजेक्ट में Finder से सिर्फ़ node_modules को रद्दी में डालें — उसके ऊपर वाले प्रोजेक्ट फ़ोल्डर को नहीं।
दोबारा इंस्टॉल करके पूरा प्रोजेक्ट जाँचेंबिल्ड + टेस्ट + ऐप चलाकर जाँचइंस्टॉल पूरा हो जाना पूरी रिकवरी का सबूत नहीं है।

FAQ

क्या Mac पर node_modules डिलीट करना सुरक्षित है?

आम तौर पर हाँ, अगर package.json, सही लॉकफ़ाइल, वर्कस्पेस फ़ाइलें, सोर्स कोड, कॉन्फ़िगरेशन और डिपेंडेंसी के सभी स्रोत सुरक्षित हों। दोबारा इंस्टॉल होने तक प्रोजेक्ट न चलेगा, न बिल्ड होगा। एक जाँचा हुआ फ़ोल्डर रद्दी में डालें, दोबारा इंस्टॉल करके टेस्ट करें, और प्रोजेक्ट चल जाने के बाद ही रद्दी ख़ाली करें।

क्या node_modules के साथ package-lock.json भी डिलीट करनी चाहिए?

नहीं। package-lock.json में npm की तय की हुई डिपेंडेंसी दर्ज रहती हैं और यह npm ci का इनपुट है; इसे package.json के साथ रखें। इसे डिलीट करने से डिपेंडेंसी नए सिरे से रिज़ॉल्व होंगी, अंदरूनी डिपेंडेंसी के दूसरे वर्शन आ सकते हैं, और यह सबसे पक्का सबूत खो जाएगा कि पुराना ट्री दोबारा बन सकता है। npm v12 अब npm-shrinkwrap.json नहीं पढ़ता; अगर वही अकेली लॉकफ़ाइल हो, तो उसका नाम package-lock.json करें, पर मौजूदा package-lock.json पर कभी ओवरराइट न करें।

क्या node_modules और npm कैश एक ही चीज़ हैं?

नहीं। node_modules किसी एक प्रोजेक्ट की इंस्टॉल की हुई डिपेंडेंसी ट्री है; npm का साझा कैश आम तौर पर ~/.npm में रहता है और उसमें कई इंस्टॉल में काम आने वाला डाउनलोड किया हुआ डेटा होता है। एक को हटाने से दूसरा नहीं हटता, और दोनों की रिकवरी कीमत अलग-अलग दायरों पर पड़ती है।

स्रोत

डेवलपर स्टोरेज की सफ़ाई जारी रखें