এনপিএম ইনস্টল বনাম আপডেট - পার্থক্য কি?


উত্তর:


654

মধ্যে পার্থক্য npm ইনস্টল এবং npm আপডেট প্যাকেজ সংস্করণে উল্লেখ হ্যান্ডলিং package.json :

{
  "name":          "my-project",
  "version":       "1.0",                             // install   update
  "dependencies":  {                                  // ------------------
    "already-installed-versionless-module":  "*",     // ignores   "1.0" -> "1.1"
    "already-installed-semver-module":       "^1.4.3" // ignores   "1.4.3" -> "1.5.2"
    "already-installed-versioned-module":    "3.4.1"  // ignores   ignores
    "not-yet-installed-versionless-module":  "*",     // installs  installs
    "not-yet-installed-semver-module":       "^4.2.1" // installs  installs
    "not-yet-installed-versioned-module":    "2.7.8"  // installs  installs
  }
}

সংক্ষিপ্তসার : একমাত্র বড় পার্থক্য হ'ল ফাজি সংস্করণ সহ ইতিমধ্যে ইনস্টল করা মডিউল ...

  • দ্বারা উপেক্ষা করা হয় npm install
  • দ্বারা আপডেট হয় npm update

অতিরিক্তভাবে : installএবং updateডিফল্টরূপে ডিভডিপেন্ডেন্সগুলি আলাদাভাবে হ্যান্ডেল করে

  • npm installপতাকা যুক্ত না করা হলে ডেভডিপেন্ডেনগুলি ইনস্টল / আপডেট করবে--production
  • npm updateপতাকা যুক্ত না করা হলে ডিভিনিডেন্সিগুলি উপেক্ষা করবে--dev

npm installআদৌ কেন ব্যবহার করবেন ?

কারণ npm installআপনার নির্ভরতাগুলি পরিচালনা করার পাশাপাশি আপনি যখন আরও তাকান তখন আরও বেশি করে package.json। আপনি যেমন এনএমপি ইনস্টল করতে পারবেন তেমন করতে পারেন ...

  • নোড-মডিউলগুলি ম্যানুয়ালি ইনস্টল করুন
  • এগুলি বিশ্বব্যাপী হিসাবে সেট করুন (যা তাদের শেলগুলির মধ্যে রাখে PATH) ব্যবহার করেnpm install -g <name>
  • গিট ট্যাগ দ্বারা বর্ণিত কিছু সংস্করণ ইনস্টল করুন
  • গিট ইউআরএল থেকে ইনস্টল করুন
  • সঙ্গে একটি পুনরায় ইনস্টল জোর --force

20
এবং কি সম্পর্কে ~1.3?
অফিরমো

6
সংস্করণটি 5.0.9 ডলার মতো হলে কী হবে? এবং npm install --save somePackageনির্ভরতা থেকে * সংরক্ষণ করা কি সম্ভব ?
কবিজেড

5
আমি এটিও নোট করব যে স্ক্রিপ্টগুলি postinstallইনস্টল করা চালানো, তবে আপডেটে নয়।
মাইকেল মারভিক

2
যদি installএবং এর updateমধ্যে উল্লিখিত গিট ইউআরএল, গিট ট্যাগ ইত্যাদিতে আলাদাভাবে কাজ করে package.jsonতবে উদাহরণস্বরূপ এই কেসগুলি যুক্ত করা ভাল।
জোয়েটউইডল

2
ফিজি ভার্শনিংয়ে অফিরমো টিলডির অর্থ "এই প্যাকেজের সর্বশেষ মাইনর (বাগফিক্স) রিলিজের আপডেট করুন", অপ্রাপ্তবয়স্ক সংস্করণটির সর্বশেষ সংখ্যা 1.3.0 -> 1.3.1হ'ল এটি একইরকম ^1.3.0, যেখানে ^আপডেটগুলি প্রধান সংস্করণ, অর্থাৎ 1.3.0 -> 1.4.0
বায়ান কুশলেভ

82

এনপিএম ইনস্টলpackage.json ফাইল এবং তাদের নির্ভরতাগুলির তালিকাভুক্ত সমস্ত মডিউল ইনস্টল করে ।

এনএমপি আপডেটnode_modules ডিরেক্টরি এবং তাদের নির্ভরতার সমস্ত প্যাকেজ আপডেট করে ।

এনপিএম ইনস্টল এক্সপ্রেস কেবল এক্সপ্রেস মডিউল এবং তার নির্ভরতা ইনস্টল করে।

এনপিএম আপডেট এক্সপ্রেস আপডেট এক্সপ্রেস মডিউল (npm@2.x দিয়ে শুরু করে, এটি এর নির্ভরতা আপডেট করে না)।

সুতরাং আপডেটগুলি যখন আপনার কাছে ইতিমধ্যে মডিউল থাকবে এবং নতুন সংস্করণ পেতে চান।


5
আপনি যদি একটি প্যাকেজ.জসন ফাইলটিতে কোনও নির্দিষ্ট সংস্করণ নির্দিষ্ট না করেন তবে এনপিএম ইনস্টল মডিউলটির সর্বশেষতম সংস্করণ পাবে। সুতরাং এটি একটি ধরণের আপডেট।
saeed

11
তাহলে আমার কী ব্যবহার করা উচিত, npm installবা npm update? অথবা, অন্য কথায়, আমি এখন ব্যবহার করছি npm installএবং এটি আপডেটিংটিও মনে হচ্ছে, আমার কেন কখনও ব্যবহার করার কোনও কারণ আছে npm update?
বোরেক বার্নার্ড

4
সুতরাং updateপ্যাকেজ.জসন নির্বিশেষে সর্বদা সর্বশেষতম সংস্করণে আপডেট হবে, যখন installপ্যাকেজ.জসনে দেওয়া সংস্করণটি সম্মান করবে?
বোরেক বার্নার্ড

1
updateমডিউলটির সর্বশেষ সংস্করণ ইনস্টল (বা আপডেট)। installমডিউলটির সর্বশেষতম সংস্করণ ইনস্টল করে যদি তা উপস্থাপন না করে বর্তমান সংস্করণ রাখে।
দশফী

11
@ বোরেক npm updateআপনার প্যাকেজ.জসনের উপর ভিত্তি করে সর্বশেষতম সংস্করণে আপডেট করবে, তা নির্বিশেষে। আপনার যদি "এক্সপ্রেস": "3.x" থাকে এবং আপনি সংস্করণ 3.1.0 এ থাকেন তবে এটি সর্বশেষ 3.x ট্যাগে আপডেট হবে। যদি একটি 4.x সংস্করণ থাকে তবে এটি সর্বশেষতম ইনস্টল করবে না।
gcochard

47

বেশিরভাগ ক্ষেত্রে, এটি এনপিএম-এ প্রকাশিত মডিউলটির সর্বশেষতম সংস্করণ ইনস্টল করবে।

npm install express --save

বা সর্বশেষ সংস্করণ ব্যবহারে মডিউল আপগ্রেড করার আরও ভাল:

npm install express@latest --save --force

--save: প্যাকেজ আপনার নির্ভরতা উপস্থিত হবে।

আরও তথ্য: এনপিএম-ইনস্টল


11
npm install express@latest --save --forceআমি যা চেয়েছিলাম ঠিক তাই ছিল
থমাসরেগি

2
অধিকাংশ ক্ষেত্রে? অন্য কোন মামলা?
দিমিত্রি জায়তসেভ

9

ইতিমধ্যে অনেক পার্থক্য উল্লেখ করা হয়েছে। এখানে আরও একটি:

চলমান npm installআপনার সোর্স ডিরেক্টরি উপরের বিভিন্ন স্ক্রিপ্ট চালানো হবে: prepublish, preinstall, install, postinstall। এই স্ক্রিপ্টগুলি কী করে তার উপর নির্ভর করে একটি npm installকেবল নির্ভরতা ইনস্টল করার চেয়ে যথেষ্ট বেশি কাজ করতে পারে।

আমার সবেমাত্র একটি ব্যবহারের কেস রয়েছে যেখানে prepublishকল হবে makeএবং Makefileযদি package.jsonআপডেট হয় তবে নির্ভরতা আনতে ডিজাইন করা হয়েছিল । কলটির npm installমধ্য থেকে কল করা Makefileঅসীম পুনরাবৃত্তি হতে পারে, কল npm updateকরার সময় ঠিকঠাক কাজ করা হত , সমস্ত নির্ভরতা ইনস্টল করা হয় যাতে makeসরাসরি বলা হলেও বিল্ডটি এগিয়ে যেতে পারে ।


1
এক সংশ্লেষ যে আপনি যদি উদাহরণস্বরূপ, আপনার জন্য, আপডেট করা হয় redisমডিউল, এবং other_moduleএর একটি পুরোনো সংস্করণ প্রয়োজন redis, npm install other_moduleগ্যারান্টি করবে other_moduleপুরোনো সংস্করণ ব্যবহার করবে। এটি প্রয়োজনে যুক্ত করতে পারে other_module/node_modules/redis
জালুকান্ত

4

npm update: প্যাকেজ.জসনে থাকা সর্বশেষ নোড মডিউলগুলির সাথে ইনস্টল এবং আপডেট করুন

npm install: প্যাকেজ.জসনে সংজ্ঞায়িত নোড মডিউলগুলি ইনস্টল করুন (আপডেট ছাড়াই)


এনপিএম সংস্করণ 9.৯.০ ব্যবহার করে আমি নিম্নলিখিত আচরণ পর্যবেক্ষণ করি: এতে npm updateপ্রচুর পরিমাণে নির্ভরতা বাদ দেওয়া হবে package-lock.json। সমস্ত প্রয়োজনীয় প্যাকেজ উপলব্ধ থাকতে এবং package-lock.jsonসঠিক হতে, আমাকে সর্বদা npm installঠিক পরে চালানো উচিত npm update
মানফ্রেড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.