প্রয়োজন হলে এনপিএম চেক এবং আপডেট প্যাকেজ


471

আমাদের টিমসিটির সাথে কর্ম পরীক্ষার রানার একীভূত করতে হবে এবং এর জন্য আমি সিস-ইঞ্জিনিয়ারদের একটি ছোট স্ক্রিপ্ট (পাওয়ারশেল বা যাই হোক না কেন) দিতে চাই:

  1. কিছু কনফিগার ফাইল থেকে কাঙ্ক্ষিত সংস্করণ নম্বরটি নিন (আমার ধারণা আমি এটিকে মন্তব্য হিসাবে ডানদিকে রাখতে পারি karma.conf.js)

  2. কর্মের রানার সংজ্ঞায়িত সংস্করণ এনপিএমের গ্লোবাল রেপোতে ইনস্টল করা আছে কিনা তা পরীক্ষা করে দেখুন

  3. যদি এটি না হয়, বা ইনস্টল করা সংস্করণটি পছন্দসইয়ের চেয়ে পুরানো: সঠিক সংস্করণটি বেছে নিন এবং ইনস্টল করুন

  4. চালাও এটা: karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

সুতরাং আমার আসল প্রশ্নটি হ'ল: "প্যাকেজের পছন্দসই সংস্করণ ইনস্টল হলে কীভাবে একজন স্ক্রিপ্টে পরীক্ষা করতে পারে?" আপনার চেক করা উচিত, বা কেবলমাত্র npm -g installপ্রতিবার কল করা নিরাপদ ?

আমি সর্বদা সর্বশেষতম উপলব্ধ সংস্করণটি যাচাই বা ইনস্টল করতে চাই না, কারণ অন্যান্য কনফিগার মানগুলি অসম্পূর্ণ হতে পারে

উত্তর:


609

কোনও প্রকল্পের কোনও মডিউল 'পুরানো' কিনা তা পরীক্ষা করতে:

npm outdated

' পুরানো ' নির্ধারিত প্রতিটি মডিউলটি পরীক্ষা করবে package.jsonএবং এনপিএম রেজিস্ট্রিতে আরও নতুন সংস্করণ রয়েছে কিনা তা পরীক্ষা করবে ।

উদাহরণস্বরূপ, বলুন xml2js 0.2.6( node_modulesবর্তমান প্রকল্পে অবস্থিত ) পুরানো হয়েছে কারণ একটি নতুন সংস্করণ বিদ্যমান (0.2.7)। আপনি দেখতে পাবেন:

xml2js@0.2.7 node_modules/xml2js current=0.2.6

সমস্ত নির্ভরতা আপডেট করার জন্য , আপনি যদি আত্মবিশ্বাসী হন তবে এটি পছন্দসই:

npm update

অথবা, একক নির্ভরতা আপডেট করতে যেমন xml2js:

npm update xml2js

6
npm updateবিশেষত সতর্কতার সাথে সাবধানতা অবলম্বন করুন npm update -g... এটি বেশিরভাগ পিল যা আশা করে তা তা করে না! দেখুন: github.com/npm/npm/issues/6247 এবং gist.github.com/othiym23/4ac31155da23962afd0e
jbandi

6
@ jbandi npm@2.6.1 হিসাবে, npm -g updateআবার ব্যবহার করা নিরাপদ। github.com/npm/npm/issues/6247#issuecomment-92182814
চাক লে বাট

7
দয়া করে সচেতন হন যে এনপিএম আপডেট আপনার প্যাকেজ.জেসন ফাইলটি আপডেট করবে না @ অ্যারিক ওলসনের উত্তর অনুসারে।
এহতেশাম হাসান

5
As of npm@5.0.0, 'npm update' will change package.json to save the new version as the minimum required dependency docs.npmjs.com/cli/update.html
সিডনি

368

npm outdatedআপডেট হওয়া উচিত এমন প্যাকেজগুলি সনাক্ত করবে এবং npm update <package name>প্রতিটি প্যাকেজ আপডেট করার জন্য ব্যবহার করা যাবে। তবে npm@5.0.0 এর আগে, npm update <package name>আপনার প্যাকেজ.জসনে সংস্করণগুলি আপডেট করবে না এটি একটি সমস্যা।

সেরা কর্মপ্রবাহটি হ'ল:

  1. তারিখের প্যাকেজগুলির বাইরে সনাক্ত করুন
  2. আপনার প্যাকেজ.জসনে সংস্করণগুলি আপডেট করুন
  3. npm updateপ্রতিটি প্যাকেজের সর্বশেষতম সংস্করণ ইনস্টল করতে চালান

npm-check-updatesএই কর্মপ্রবাহটি সাহায্য করতে দেখুন ।

  • এনপিএম-চেক-আপডেটগুলি ইনস্টল করুন
  • npm-check-updatesপুরানো প্যাকেজগুলি তালিকাভুক্ত করতে চালান (মূলত চলমান একই জিনিস npm outdated)
  • npm-check-updates -uআপনার প্যাকেজ.জসনের সমস্ত সংস্করণ আপডেট করতে চালান (এটি ম্যাজিক সস)
  • npm updateআপডেট করা প্যাকেজ.জসনের উপর ভিত্তি করে আপনার প্যাকেজগুলির নতুন সংস্করণ ইনস্টল করতে যথারীতি চালান

3
npm outdatedসমস্ত প্যাকেজগুলি দেখাবে .. এমনকি অন্যান্য প্যাকেজগুলির অভ্যন্তরে .. তবে এই পদ্ধতিটি দিয়ে সেগুলি আপডেট হবে না যাতে তারা সর্বদা উপস্থিত হয় .. সুতরাং কেবলমাত্র ব্যবহার করুন npm-check-updates(যা আপনি বাস্তবে প্রস্তাবিত হিসাবে) কেবল প্রধান প্যাকেজগুলি দেখায় package.json... এটি প্রাসঙ্গিক
ডেভিডক

সুতোর সাথে এটি আরও সহজ 'টাইপ করুন সুতা আপগ্রেড'।
ক্রিস্টোফার গ্রিগ 0

17
আমার প্যাকেজ পরিচালককে পরিচালনা করতে কেন আমাকে আপডেট ম্যানেজার ইনস্টল করতে হবে? আমরা কি এটি নির্বোধ একমত না? এটি যতটা সহজ হওয়া উচিত npm install --all-outdatedতবে তা নয় ...
ADJenks

3
আপনি সর্বদা npm update --save package_nameপ্যাকেজ.জসনে সর্বশেষতম পরিবর্তনটি সংরক্ষণ করতে চালাতে পারেন।
trungk18

এরিক, আপনি কি দয়া করে এই সম্পর্কিত এসও প্রশ্নের উত্তর দিতে পারেন , কারণ এটি এখনও আমার কাছে উভয় আদেশের মধ্যে পার্থক্যটি কিছুটা বিভ্রান্ত করছে, যা npm updateবনাম npm-check-updates?
জোও পিমেন্টেল ফেরেরিরা

146

একটি "টাটকা" মডিউলও রয়েছে npm-check:

npm-যাচাই

পুরানো, ভুল, এবং অব্যবহৃত নির্ভরতা পরীক্ষা করুন।

এখানে চিত্র বর্ণনা লিখুন

নির্ভরতা আপডেট করার জন্য এটি একটি সুবিধাজনক ইন্টারেক্টিভ উপায়ও সরবরাহ করে।


78

একটি সহজ পদক্ষেপ:

$ npm i -g npm-check-updates && ncu -u && npm i

এটাই সব। এর সমস্ত প্যাকেজ সংস্করণ হ'ল package.jsonসর্বশেষতমতম সংস্করণ।

সম্পাদনা:

এখানে কি হচ্ছে?

  1. আপনার জন্য আপডেটগুলি পরীক্ষা করে এমন প্যাকেজ ইনস্টল করা।

  2. আপনার সমস্ত প্যাকেজ সংস্করণ আপডেট করার জন্য এই প্যাকেজটি ব্যবহার করুন package.json(-UpdateAll এর জন্য সংক্ষিপ্ত)।

  3. প্যাকেজগুলির সমস্ত নতুন সংস্করণ ইনস্টল করুন।


3
@ আইমনিকভাহন ncuনোড-চেক-আপডেটের জন্য দাঁড়িয়েছে এবং -aএটি 'আপগ্রেডআল' বিকল্প। এখানে সমস্ত বিকল্প সন্ধান করুন: npmjs.com/package/npm-check-updates
আরিয়ান অ্যাকোস্টা

এবং যদি আমি এনসিইউর মতো অন্য প্যাকেজটি ব্যবহার না করে এক লাইনে এটি করতে চাই?
এডিজেঙ্কস 24'19

বা বিশ্বব্যাপী ইনস্টল ব্যতীত,npx -p npm-check-updates ncu -u
এন্টোজুন

68
  • একটি একক স্থানীয় প্যাকেজ আপডেট করতে:

    1. প্রথমে আপনার পুরানো প্যাকেজগুলি সন্ধান করুন:

      npm outdated

    2. তারপরে আপনি যে প্যাকেজ বা প্যাকেজগুলি ম্যানুয়ালি চান তা আপডেট করুন:

      npm update --save package_name

এইভাবে আপনার স্থানীয় package.json ফাইল আপডেট করা প্রয়োজন হয় না ।

নোট করুন যে এটি আপনার প্যাকেজটি সর্বশেষ সংস্করণে আপডেট করবে।

  • আপনি যদি আপনার package.jsonফাইলটিতে কিছু সংস্করণ লিখেন এবং করেন:

    npm update package_name

    এক্ষেত্রে আপনি নিজের package.jsonফাইলটিতে যে সংস্করণটি লিখেছেন সে সম্পর্কে আপনি কেবলমাত্র পরবর্তী স্থিতিশীল সংস্করণ (চেয়েছিলেন) পাবেন ।

এবং এর সাহায্যে npm list (package_name)আপনি আপনার স্থানীয় প্যাকেজগুলির বর্তমান সংস্করণটি জানতে পারেন।


14

কিছু নির্ভরতা ম্যানিফেস্ট ফাইলগুলিতে দুর্বলতাগুলি আপডেট বা ঠিক করার জন্য এনপিএম আদেশ দেয়

  • আপনার নোড মডিউলগুলিতে পুরানো বা দুর্বলতাগুলি পরীক্ষা করতে নীচের কমান্ডটি ব্যবহার করুন।

    npm audit

  • যদি কোনও দুর্বলতা পাওয়া যায় তবে সমস্ত সমস্যা সমাধানের জন্য নীচের কমান্ডটি ব্যবহার করুন।

    npm audit fix

  • যদি এটি আপনার পক্ষে কাজ না করে তবে চেষ্টা করুন

    npm audit fix -f, এই কমান্ডটি সমস্ত দুর্বলতাগুলি প্রায় স্থির করবে। কিছু নির্ভরতা বা ডেভিনিডেন্সিগুলি প্যাকেজ-লক.জসন ফাইলে লক হয়ে আছে , তাই আমরা -fআপডেটগুলি বাধ্য করার জন্য পতাকা ব্যবহার করি।

  • আপনি যদি জোর করে অডিট ফিক্সটি ব্যবহার করতে না চান তবে আপনি প্যাকেজ-লক.জসন এবং প্যাকেজ.জসন ফাইলে তাদের নির্ভরতা সংস্করণগুলিকে ম্যানুয়ালি ঠিক করতে পারেন । তারপরে দৌড়াও

npm update && npm upgrade



10

কোনও অতিরিক্ত প্যাকেজ নেই, কেবলমাত্র সেকেলে পরীক্ষা করতে এবং সেগুলি আপডেট করার জন্য, এই আদেশটি এটি করবে:

npm install $(npm outdated | cut -d' ' -f 1 | sed '1d' | xargs -I '$' echo '$@latest' | xargs echo)


ভাল জিনিস মানুষ, ধন্যবাদ!
drKreso

এটি দুর্দান্ত উত্তর কারণ এটি কোনও প্যাকেজ ইনস্টল না করে নির্ভর করে এই পদক্ষেপটি স্বয়ংক্রিয় করতে কোনও শেল স্ক্রিপ্টে রাখা যেতে পারে।
জানকাপঙ্ক্ট

4

এনপিএম প্যাকেজ ইনস্টল করার সময় (বিশ্বজুড়ে বা স্থানীয়ভাবে উভয়ই) ইনস্টল করার জন্য সংস্করণটিকে সংজ্ঞায়িত করতে @versionসিনট্যাক্স ব্যবহার করে আপনি একটি নির্দিষ্ট সংস্করণটি সংজ্ঞায়িত করতে পারেন ।

অন্য কথায়, করছেন: npm install -g karma@0.9.2 নিশ্চিত করবে যে কেবল ০.৯.২ ইনস্টল করা আছে এবং এটি ইতিমধ্যে বিদ্যমান থাকলে পুনরায় ইনস্টল করবে না।

একটি পরামর্শের শব্দ হিসাবে, আমি আপনাকে যেখানেই পারেন বিশ্বব্যাপী এনপিএম ইনস্টল এড়ানো পরামর্শ দিচ্ছি would অনেক লোক বুঝতে পারে না যে নির্ভরতা যদি একটি বিন ফাইল সংজ্ঞায়িত করে তবে এটি। / Node_modules/.bin/ এ ইনস্টল হয়ে যায়। প্রায়শই, এটি ইনস্টল করা মডিউলের যে স্থানীয় সংস্করণটি আপনার প্যাকেজ.জসনে সংজ্ঞায়িত করা হয়েছে এটি ব্যবহার করা খুব সহজ। আসলে, এনএমপি স্ক্রিপ্টগুলি আপনার পথে ./node_modules/.bin যুক্ত করবে।

উদাহরণস্বরূপ, এখানে একটি প্যাকেজ.জসন রয়েছে যে আমি যখন চালাব তখন npm install && npm testআমার প্যাকেজ.জসনে সংজ্ঞায়িত কর্ম সংস্করণটি ইনস্টল করবে এবং testস্ক্রিপ্টটি চালানোর সময় কর্মের সেই সংস্করণটি (নোড_মডিউলগুলি / .বিন / কর্মে ইনস্টল করা) ব্যবহার করবে :

{
 "name": "myApp",
 "main": "app.js",
 "scripts": {
   "test": "karma test/*",
 },
 "dependencies": {...},
 "devDependencies": {
   "karma": "0.9.2"
 }
}

এটি আপনাকে আপনার প্যাকেজটির সুবিধা দেয় j জসনের ব্যবহারের জন্য কর্মের সংস্করণটি নির্ধারণ করে এবং আপনার সিআই বাক্সে এই কনফিগারেশনটি বিশ্বব্যাপী রাখবেন না।


কি আছে testস্ক্রিপ্ট? আপনি কী আমাকে স্ক্রিপ্ট দিয়ে এটি ইনস্টল করবেন তা দয়া করে আমাকে একটি ক্লু দিতে পারেন।
iLemming

1
প্যাকেজ.জসন দেখুন। "স্ক্রিপ্টস" বৈশিষ্ট্যের অধীনে, আপনি অন্য একটি সংজ্ঞা নির্ধারণ করতে পারেন, "পরীক্ষা" যার মান আপনি টাইপ করার সময় চালাতে চান এমন একটি আদেশ npm test। এনপিএম ডক্স এখানে বেশ ভাল: npmjs.org/doc/scriptts.html
অ্যাডিসনজ

4

Npm@5.0.0+ হিসাবে আপনি সহজভাবে করতে পারেন:

npm update <package name>

এটি স্বয়ংক্রিয়ভাবেpackage.json ফাইল আপডেট হবে। আমাদের ম্যানুয়ালি সর্বশেষতম সংস্করণ আপডেট করতে হবে এবং তারপরে ব্যবহার করতে হবে নাnpm update <package name>

আপনি এখনও ব্যবহার করে পুরানো আচরণ পেতে পারেন

npm update --no-save

( রেফারেন্স )


1

কেবলমাত্র একটি প্যাকেজ আপডেট করতে এনসিইউ ইনস্টল করুন এবং তারপরে কেবল সেই প্যাকেজটির জন্য এটি চালান। এটি বাস্তবের সর্বশেষতমের দিকে ঝাঁপিয়ে পড়বে।

npm install -g npm-check-updates

ncu -f your-intended-package-name -u

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