প্যাকেজ.জসনে নেই এমন প্যাকেজের নোড_মডিউল ফোল্ডার কীভাবে পরিষ্কার করবেন?


338

ধরুন আমি ইনস্টল npm installকরার package.jsonজন্য মডিউলগুলির সন্ধানকারী প্রকল্প প্যাকেজগুলি ইনস্টল করেছি। কিছুক্ষণ পরে আমি দেখতে পাচ্ছি যে আমার কোনও নির্দিষ্ট মডিউল দরকার নেই এবং এর নির্ভরতা অপসারণ করব package.json। তারপরে আমি package.jsonএগুলি থেকে অন্য কিছু মডিউল সরিয়ে ফেলছি কারণ সেগুলির আর প্রয়োজন হয় না এবং অন্যরা বিকল্পের সাথে প্রতিস্থাপন করা হয়।

এখন আমি পরিষ্কার করতে চান node_modules, যাতে তালিকাভুক্ত শুধুমাত্র মডিউল ফোল্ডারের package.jsonথাকা সেখানে এবং বাকি যেতে হবে, ভালো কিছু npm clean। আমি জানি আমি এগুলি ম্যানুয়ালি মুছে ফেলতে পারি তবে তার জন্য চিনির কার্যকারিতা ব্যবহার করার জন্য কিছু সুন্দর প্রস্তুত থাকতে চাই।

উত্তর:


407

আমার মনে হয় আপনি খুঁজছেন npm prune

npm prune [<name> [<name ...]]

এই আদেশটি "বহিরাগত" প্যাকেজগুলি সরিয়ে দেয়। যদি কোনও প্যাকেজের নাম সরবরাহ করা হয় তবে কেবল সরবরাহ করা নামেরগুলির সাথে মিলে যাওয়া প্যাকেজগুলিই সরানো হবে।

এক্সট্রাণ্যস প্যাকেজ হ'ল প্যাকেজ যা প্যাকেজ প্যাকেজের নির্ভরতা তালিকায় তালিকাভুক্ত নয়।

দস্তাবেজগুলি দেখুন: https://docs.npmjs.com/cli/prune


1
আমি যতদূর জানি, নতুন এনপিএম সংস্করণে, সমস্ত নির্ভরতা মূল node_modulesফোল্ডারে অবস্থিত , এবং আগের মতো নয়, যেখানে প্রতিটি নির্ভরতার নিজস্ব node_modulesফোল্ডারে ইনস্টলডের নিজস্ব নির্ভরতা ছিল ... একই নির্ভরতার অগণিত অনুলিপি সহ ... সুতরাং এটি npm pruneবিবেচনা গ্রহণ করে ? কারণ সেই গভীর-নির্ভরতাগুলি package.jsonআপনার প্রকল্পের মূলটিতে লেখা নেই .. ছাঁটাইটি অবশ্যই পুনরাবৃত্তভাবে দেখতে হবে।
vsync

2
@vsync ডুপ্লিকেশন হ্রাস npm dedupe ডকস.এন.এম.এম.js.com/cli/dedupe কমান্ডের সাথে সম্পন্ন হয়েছে । এটি গাছের উপর নির্ভরতা সরিয়ে নোড ট্রিটিকে সহজ করার চেষ্টা করে।
নওস

আমি দেখেছি এনপিএম ছাঁটাই যখন আমার কর্পোরেট সংগ্রহস্থলটিতে কিছু জড়িত থাকে তখন সাধারণত জিনিসগুলি মুছে ফেলতে ব্যর্থ হয়। তারপরে আমাকে আরএম-আরএফ করতে হবে। এটি খুব ভাল হবে যদি সেখানে "আঘাতের সমস্ত কিছু দূরে থাকে তবে সমস্ত কিছু
একসাথে পুনরায় তৈরি করুন

210

আপনি আপনার নোড_মডিউল / ফোল্ডারটি সরিয়ে ফেলতে পারেন এবং তারপরে প্যাকেজ.জসন থেকে নির্ভরতা পুনরায় ইনস্টল করতে পারেন।

rm -rf node_modules/
npm install

এটি বর্তমান ফোল্ডারে সমস্ত ইনস্টল করা প্যাকেজগুলি মুছে ফেলবে এবং কেবল প্যাকেজ.জসন থেকে নির্ভরতা ইনস্টল করবে। যদি নির্ভরতাগুলি পূর্বে ইনস্টল করা থাকে তবে এনএমপি ক্যাশেড সংস্করণটি ব্যবহার করার চেষ্টা করবে, দ্বিতীয়বার নির্ভরতা ডাউনলোড করা এড়িয়ে চলবে।


4
হ্যাঁ, আমি জানি আমি এই পদ্ধতিটি ব্যবহার করতে পারি তবে আমি কেন আগ্রহী যে কেন এখনও এর জন্য আরও মার্জিত সমাধান নেই।
সের্গেই বাশারভ

ফোল্ডার মোছা বাদে নোড_মডিউলগুলি মুছার জন্য আসলেই কোনও এনপিএম কমান্ড নেই?
এন্ডার্স

4
উইন্ডোজ প্ল্যাটফর্মে, এক্সপ্লোরার বা কমান্ড লাইনের মাধ্যমে নোড_মডিউলগুলি মুছে ফেলার সময় এটি ব্যর্থ হয় (যেহেতু কিছু মডিউলগুলির পথ 256 এর চেয়ে দীর্ঘ হয়)। ক্লিনার উপায়ে এটি করার জন্য এনপিএম কমান্ড থাকা উচিত।
রবি কুমার

9
বা rmdir node_modules /s /qউইন্ডোজ ব্যবহার করে। superuser.com/a/179661/440976
ওয়েডনি ইউরি

5
আমি মনে করি, এই উত্তরটি একটি খুব গুরুত্বপূর্ণ পয়েন্টটি হারিয়েছে: যদি আপনি ট্র্যাফিক দ্বারা সীমাবদ্ধ থাকেন (যেমন আপনার কাছে মোবাইলের মতো ব্যয়বহুল প্রতি মেগাবাইট-প্রদত্ত সংযোগ রয়েছে) এবং আপনার কাছে অনেকগুলি মডিউল রয়েছে, তবে pruneবিকল্পটি অপেক্ষাকৃত আপনাকে ব্যয় করতে পারে আপনার মোটেই ইন্টারনেট সংযোগ থাকা দরকার।
ইভান কলমিচেক

102

এর ফোল্ডারের নীচে বাসা বাঁধার কারণে উইন্ডোজ ফোল্ডারটি মুছে ফেলতে পারে না কারণ এর নামটি খুব দীর্ঘ। এটি সমাধানের জন্য, রিমআফ ইনস্টল করুন:

npm install rimraf -g

rimraf node_modules

8
বা সবেমাত্রrm -rf node_modules
কাপ্পল্ডে

16
rm -rf node_modulesউইন্ডোজ কাজ করবে না। এই সমাধানটি দেখুন: superuser.com/a/179661/440976
ওয়েডনি ইউরি

1
win7 x64 রিমরাফ পাওয়ারশেলের মাধ্যমে দুর্দান্ত কাজ করেছে .. ধন্যবাদ
gorelative

সিএমডি এর মাধ্যমে উইন্ডোজ 10 64-বিটের জন্য সেরা সমাধান
ম্যাট ক্রোমওয়েল

rm -rf নোড_মডিউলগুলি উইন্ডোজ 10 এ আমার পক্ষে কাজ করেনি তবে রিমরাফ আমার পক্ষে কাজ করেছে
এসএমএসনেট

24

সহজ সরল

rm -r node_modules

আসলে, আপনি এটি দিয়ে যে কোনও ফোল্ডার মুছতে পারেন।

মত rm -R AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete

ফোল্ডারের রুটে গিটব্যাশ মুভ খুলুন এবং এই কমান্ডটি চালান

আশা করি এটি সাহায্য করবে।


2
কাজ করে না, আমি একটি "অনুমতি প্রত্যাখ্যান" ত্রুটি পেয়েছি (গিটব্যাশ ব্যবহার করে dra
ড্রেক035

3
প্রশাসক মোডে গিটব্যাশ খুলুন। আমি মনে করি এটি সাহায্য করবে। বা ফোল্ডারের অনুমতি স্তর সেটিংস পরিবর্তন করুন
অজয় কোটনালা

3
এটি সমস্ত প্যাকেজ মুছে ফেলবে । ওপি স্পষ্টভাবে বলেছে "আমি নোড_মডিউলগুলি ফোল্ডারটি পরিষ্কার করতে চাই যাতে কেবল প্যাকেজে তালিকাভুক্ত মডিউল থাকে j জেসন সেখানে থাকে"।
বোয়াজ

সেক্ষেত্রে আমার বন্ধু আপনি কেবল "এনপিএম আনইনস্টল প্যাকেজ_নাম" করতে পারেন বা সুফিক্স হিসাবে সংরক্ষণ করতে পারেন যা প্যাকেজ.জসন ফাইল থেকেও এর প্রবেশ মুছবে। npm আনইনস্টল PACKAGE_NAME (ডিলিট প্যাকেজ) npm আনইনস্টল PACKAGE_NAME --save (ডিলিট প্যাকেজ এবং প্যাকেজ JSON মধ্যে নির্ভরতা থেকে সরান এন্ট্রি) npm আনইনস্টল PACKAGE_NAME --save-দেব (ডিলিট প্যাকেজ এবং প্যাকেজ JSON মধ্যে devdependencies থেকে সরান এন্ট্রি)
অজয় Kotnala

22

প্রথমে বিশ্বব্যাপী রিমরাফ ইনস্টল করুন

npm install rimraf -g

আপনার নোড_মডিউলগুলি ফোল্ডারটি সিএমডি ব্যবহার করে সেই পথে যান এবং নীচের আদেশটি প্রয়োগ করুন

rimraf node_modules

ভাল উত্তর, তবে অন্যগুলি আনইনস্টল করার জন্য প্যাকেজ ইনস্টল করা যদিও ভাল ধারণা নয়। npm pruneএকটি আদর্শ সমাধান।
বিনায়ক গৌরী শঙ্কর

হ্যাঁ, তবে আপনি যদি আপনার প্রকল্প থেকে নোড_মডিউল ফোল্ডারটি সরাতে চান তবে এটি সেরা এবং সহজ উপায়।
অঙ্কিত পরমার


9

সংস্করণ 6.5.0 থেকে এনপিএম clean-installসমস্ত প্যাকেজগুলি হার্ড রিফ্রেশ করার জন্য কমান্ডটিকে সমর্থন করে


1
এটাই আমার দরকার ছিল। আমি যখন নোড আপডেট করি তখন প্রথমটি ঘটে যা হ'ল 'এনপিএম ইনস্টল' চালানোর পরে আপনি আপনার পরিবেশ পরিবর্তন করেছেন বলে মনে হচ্ছে "। যেহেতু আমি কনসোলে ইতিমধ্যে আছি, এটা ঠিক না প্রথম ইত্যাদি ফোল্ডার মুছে ফেলার প্রায় তালগোল পাকানো বদলে ক্লিন-ইনস্টল করার জন্য সবচেয়ে সহজ পদ্ধিতি হল এর
টেকনোলজি McGuire

3

আমি প্যাকেজ.জসনের ভিতরে কয়েকটি লাইন যুক্ত করেছি:

"scripts": {
  ...
  "clean": "rmdir /s /q node_modules",
  "reinstall": "npm run clean && npm install",
  "rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
  ...
}

আপনি যদি চান তবে আপনি এটি cleanব্যবহার করতে পারেন rimraf node_modulesবা rm -rf node_modules

এটা ভাল কাজ করে


2

উইন্ডোজ ব্যবহারকারীর জন্য, এখানে তালিকাভুক্ত ফোল্ডারটি অপসারণের বিকল্প সমাধান: http://ask.osify.com/qa/567

এর মধ্যে একটি নিখরচায় সরঞ্জাম: লং পাথ ফিক্সার চেষ্টা করা ভাল: http://corz.org/windows/software/accessories/Long-Path-Fixer- for-Windows.php


1

আমি এটি সম্পর্কে সবচেয়ে ভাল নিবন্ধটি পেয়েছি: এটি https://trilon.io/blog/how-to-delete-all-nodemodules-recursively

সমস্ত কনসোল থেকে এবং যে কোনও ফোল্ডার পয়েন্ট থেকে কার্যকর করা সহজ।

তবে নিবন্ধটির সংক্ষিপ্তসার হিসাবে, node_moduleবিভিন্ন প্রকল্পে পাওয়া প্রতিটি ফোল্ডারের আকার নির্ধারণের জন্য এই আদেশটি ।

find . -name "node_modules" -type d -prune -print | xargs du -chs

এবং আসলে এগুলি সরাতে:

find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;

নিবন্ধে উইন্ডোজ শেলের জন্য নির্দেশাবলীও রয়েছে।


0

প্যাকেজ-লক.জসনের প্রয়োজন নেই এমন প্যাকেজগুলি সরান / সম্পাদনা করুন (প্যাকেজের নাম নির্ভরতা এবং দেব-নির্ভরতা অনুযায়ী লেখা হবে) এবং তারপরে

npm install


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.