এনপিএম ইনস্টল এবং এনপিএম রান বিল্ডের মধ্যে পার্থক্য কী?


113

মধ্যে পার্থক্য কি npm installএবং npm run build?

আমি আমার প্রকল্পে লক্ষ্য করেছি যে কখনও কখনও এনপিএম npm installসঞ্চালিত হওয়ার পরে ব্যর্থ হতে শুরু করে , তবে চালানোর পরে npm run buildএটি ঠিক কাজ করে।

কিভাবে যথা এই দুটি লক্ষ্যমাত্রা ভেতরের কাজগুলোকে করে installএবং run buildএকেক রকম হয়?


1
এখন পর্যন্ত গৃহীত উত্তর বিতর্কযোগ্য। আমি মনে করি এমকেপি এবং সিটিএস_এইয়ের উত্তরগুলি এই নির্দিষ্ট সময়ে আরও প্রাসঙ্গিক। যথাযোগ্য সম্মানের সাথে, এটি মডারেটর এবং / অথবা যারা এই প্রশ্নটি জিজ্ঞাসা করেছে তার নজরে আসতে হবে।
সুহাস চিক্কান্না

উত্তর:


69

npm installnode_modules/আপনি যে নোড প্রকল্পটিতে কাজ করছেন তার জন্য ডিরেক্টরিতে নির্ভরতা ইনস্টল করে। installআপনার প্রকল্পের নির্ভরতা হিসাবে এটি ইনস্টল করতে আপনি অন্য নোড.জেএস প্রকল্পে (মডিউল) কল করতে পারেন ।

npm run buildnpm buildএটির জন্য একটি উপাধি এবং এটি আপনার প্যাকেজ.জসন ফাইলটিতে "বিল্ড" কী করে তা নির্দিষ্ট না করা ছাড়া এটি কিছুই করে না। এটি আপনাকে অন্য প্রকল্পে ব্যবহারের আগে, আপনার প্রকল্পের জন্য প্রয়োজনীয় বিল্ডিং / প্রস্তুতিমূলক কার্য সম্পাদন করতে দেয়।

buildবিল্ডের জন্য ডকুমেন্টেশন অনুসারে বলা হয় linkএবং installআদেশগুলি :

এটি এনএমপি লিঙ্ক এবং এনপিএম ইনস্টল দ্বারা ডাকা প্লাম্বিং কমান্ড।


37
@ এমকেপি বলার পর থেকে ডাউনভোটেড npm run buildএবং npm buildএক নয় । যদি আপনি প্রমাণ করতে পারেন যে তারা সত্যই একইরূপে বা আপনার উত্তরটি সংশোধন করতে পারে তবে আমি আবার উত্সাহিত করব।
হেন্ডি ইরাওয়ান

নীচের লিঙ্কটির সঠিক উত্তর উল্লেখ করার পরে, আমি এটিও মনে করি npm buildএবং npm run buildএক নয়। আইএমএইচও, সম্ভবত @ চুরোর উপরের উত্তরটি সংশোধন করা দরকার। আমি ভুল হলে আমাকে সংশোধন করুন। stackoverflow.com/questions/29939697/…
সুহাস চিক্কনা

1
দুর্ভাগ্যক্রমে @ হেন্ডি ইরাওয়ান সঠিক এবং তারা একই আদেশ নয়, এটি একটি উচ্চ ভোটের উত্তর যা কিছু লোককে বিভ্রান্ত করতে পারে। আমি বিশ্বাস করি এটি অবশ্যই আপডেট করা উচিত।
rdarioduarte

79

2019 সালে এনপিএম

npm buildআর বিদ্যমান নেই. আপনার npm run buildএখনই ফোন করা উচিত । নীচে আরও তথ্য।

TLDR;

npm install: নির্ভরতা ইনস্টল করে, তারপর ক্ষেত্র installথেকে কলগুলি package.json scripts

npm run build: মাঠ থেকে বিল্ড ফিল্ড চালায় package.json scripts


এনপিএম স্ক্রিপ্টস ক্ষেত্র

https://docs.npmjs.com/misc/scripts

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


জটিল জিনিস

  • npm install যেমন হয় না npm run install
  • npm installpackage.jsonনির্ভরতা ইনস্টল করে , তারপর চালায়package.json scripts.install
    • ( npm run installনির্ভরতা ইনস্টল হওয়ার পরে মূলত কল করে ।
  • npm run installশুধুমাত্র চালায় package.json scripts.install, এটি নির্ভরতা ইনস্টল করবে না
  • npm buildএকটি বৈধ কমান্ড হিসাবে ব্যবহৃত (যেমন ব্যবহৃত হবে npm run build) তবে এটি আর নেই; এটি এখন একটি অভ্যন্তরীণ কমান্ড। এটি চালালে আপনি পাবেন: npm WARN build npm build called with no arguments. Did you mean to npm run-script build?আপনি ডকুমেন্টেশনে আরও পড়তে পারবেন: https://docs.npmjs.com/cli/build

5
+1 তবে এটি বিভ্রান্তিকর npm buildবলেই আর অস্তিত্ব নেই। এটি এখনও এই অর্থে অস্তিত্ত্ব হয় যে এটি এনএমপি-তে পরিচিত / বিশেষ, কারণ এটি নীচে উল্লিখিত সতর্কতার সাথে প্রতিক্রিয়া দেখায়। মূলত এটি এখন কিছুই করে না। অপর এক প্রশ্নের এই উত্তরটি উপর সবচেয়ে কম সারসংক্ষেপ দিলেন npm buildবনাম npm run build
bluenote10

1
অন্য কথায়, সুতা পরীক্ষা করার সময়?
মোজ অন লুজ

44

মূল পার্থক্য হল ::

এনপিএম ইনস্টল একটি এনএমপি ক্লাইম-কমান্ড যা পূর্বনির্ধারিত কাজটি করে যেমন প্যাকেজ.জেসনের অভ্যন্তরে নির্দিষ্ট নির্ভরতা ইনস্টল করতে চুরোর লিখিত হিসাবে

এনএমপি রান কমান্ড-নাম বা এনএমপি রান-স্ক্রিপ্ট কমান্ড-নাম ( উদাঃ এনপিএম রান বিল্ড ) আপনার কাস্টম স্ক্রিপ্টগুলি "কমান্ড-নাম" এর জায়গায় নির্দিষ্ট নামের সাথে চালানোর জন্য পূর্বনির্ধারিত একটি ক্লাই-কমান্ডও is সুতরাং, এই ক্ষেত্রে এনপিএম রান বিল্ড "বিল্ড" নাম সহ একটি কাস্টম স্ক্রিপ্ট কমান্ড এবং এর অভ্যন্তরে নির্দিষ্ট কিছু করতে হবে ( উদাহরণস্বরূপ প্যাকেজ.জেসনের নীচে দেওয়া 'হ্যালো ওয়ার্ল্ড' প্রতিধ্বনি )।

পনিটরা লক্ষ করুন ::

1) আরও একটি জিনিস, npm buildএবং npm run buildদুটি ভিন্ন জিনিস npm buildChurro দ্বারা লিখিত হিসাবে npm run buildকাজ করবে , কিন্তু ভিতরে লেখা কাস্টম কাজ করবেpackage.json

2) এবং npm buildএবং npm run buildএক নয়। আমার অর্থ হ'ল, আপনি কাস্টম বিল্ড ( npm run build) স্ক্রিপ্টের ভিতরে কোনও জিনিস নির্দিষ্ট করতে পারবেন না এবং এটি করার আশাও npm buildকরতে পারেন। আপনার যাচাই করতে নিম্নলিখিত জিনিস চেষ্টা করুন package.json:

{
  "name": "demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build":"echo 'hello build'"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {},
  "dependencies": {}
}

এবং দৌড়ুন npm run buildএবং npm buildএক এক করে আপনি পার্থক্য দেখতে পাবেন। কমান্ড সম্পর্কে আরও জানতে দয়া করে এনপিএম ডকুমেন্টেশন অনুসরণ করুন ।

চিয়ার্স !!


11
"এটি চালানোর চেষ্টা করুন" পরিবর্তে আপনি npm run buildএবং এর মধ্যে কী পার্থক্য রয়েছে তা আরও বিশদে ব্যাখ্যা করলে আমি প্রশংসা করব npm build। ঠিক আছে তাই তারা কি একই রকম না? তাহলে @ চুরোর উত্তরটি কি ভুল?
হেন্ডি ইরাওয়ান

7
হ্যাঁ, যা npm buildরহস্য থেকে যায়। এটি জানতে পেরে ভাল লাগবে। আমি যতদূর বলতে পারি, " npm buildচুরোর লিখিতভাবে কাজ করবে" সত্য নয়। চুরো বলেছিলেন package.jsonযে buildকমান্ডের জন্য যা নির্দিষ্ট করা হয়েছে তা তা করবে (যেমন scriptsআমি মনে করি বিভাগে সংজ্ঞায়িত )। তবে এটি যা npm run buildকরে, এবং বিভাগে npm buildনির্দিষ্ট করা বিল্ড কমান্ডটি চালায় না package.json scripts। এখানে কী করা npm buildউচিত তা নির্ধারণের অন্য কোনও উপায় না থাকলে package.json, যা এখানে ব্যাখ্যা করা হয়নি, বা চুরো দ্বারাও নয় (বা এনপিএম ডক্সগুলিতেও আমি মনে করি, দুঃখের সাথে)।
ট্রোলকোটজে

2
তাই আমি এটি চেষ্টা করে npm buildবললাম এবং এনপিএম ওয়ার্ন বিল্ডকে npm buildকোনও যুক্তি ছাড়াই ডাকা হয়েছে। আপনি কি বোঝাতে চেয়েছিলেন npm run-script build? । আমি মনে করি এটি কিছুই করেনি। এখানে সময় কাটানোর সব উত্তর পড়তে এবং এই চেষ্টা নিজেকে পর আমি এখনও উদ্দেশ্য কি বলতে পারে না npm build:(।
bluenote10

4
  • npm install আপনার প্যাকেজ.জসন কনফিগারেশনে অবক্ষয়গুলি ইনস্টল করে।
  • npm run build স্ক্রিপ্টটি "বিল্ড" চালায় এবং এমন স্ক্রিপ্ট তৈরি করে যা আপনার অ্যাপ্লিকেশনটি চালায় - আসুন সার্ভার.জেএস বলতে পারি
  • npm start "স্টার্ট" স্ক্রিপ্টটি চালায় যা পরে "নোড সার্ভার.জেএস" হবে

সমস্যাটি ঠিক কী তা বলা মুশকিল তবে মূলত আপনি যদি আপনার স্ক্রিপ্টগুলির কনফিগারেশনটি দেখেন তবে আমি অনুমান করব যে "বিল্ড" আপনার অ্যাপ্লিকেশন তৈরি করতে কিছু বিল্ড টুল ব্যবহার করে "শুরু" ধরে নিলে বিল্ডটি সম্পন্ন হয়েছে তবে ব্যর্থ হলে ফাইলটি নেই।

আপনি সম্ভবত বোর বা গ্রান্ট ব্যবহার করছেন - আমার মনে হচ্ছে যে একটি সাধারণ গ্রান্ট অ্যাপ্লিকেশন সেই স্ক্রিপ্টগুলির পাশাপাশি শেষ বিল্ডটি মুছতে "পরিষ্কার" স্ক্রিপ্টটিকে সংজ্ঞায়িত করবে।

বিল্ড সরঞ্জামগুলি বিন /, ডিস্ট /, বা বিল্ড / ফোল্ডারে একটি ফাইল তৈরি করার ঝোঁক দেয় যা প্রারম্ভিক স্ক্রিপ্টটি পরে কল করে - যেমন "নোড বিল্ড / সার্ভার.জেএস"। যখন আপনার npm startব্যর্থতা হয়, এটি সম্ভবত আপনি npm cleanসর্বশেষ বিল্ডটি মুছে ফেলার জন্য কল করেছেন বা অনুরূপ কারণ আপনার অ্যাপ্লিকেশন ফাইলটি এনএমপি শুরু ব্যর্থ হওয়ার কারণে উপস্থিত নেই।

এনপিএম বিল্ডের সোর্স কোড - এই প্রশ্নের আলোচনার বিষয়ে স্পর্শ করতে - আপনার পছন্দ হয় কিনা তা একবার দেখার জন্য গিথুব রয়েছে। আপনি যদি npm buildসরাসরি চালনা করেন এবং আপনার একটি "বিল্ড" স্ক্রিপ্ট সংজ্ঞায়িত করা হয় তবে এটি আপনার বিল্ড স্ক্রিপ্টটিকে কল করতে অনুরোধ করে একটি ত্রুটি সহ প্রস্থান করবে যা npm run-script buildএটির মতো নয় notnpm run script

আমি কী করি তা সম্পর্কে পুরোপুরি নিশ্চিত নই npm build, তবে এটি নির্ভর করে পোস্টইনস্টল এবং প্যাকেজিং স্ক্রিপ্টগুলির সাথে সম্পর্কিত। আমি ধরে নিচ্ছি যে এটি নিশ্চিত হতে পারে যে কোনও সি এল এলই স্ক্রিপ্টগুলি তৈরি করতে পারে বা প্যাকেজ ডাউনলোডের পরে নির্দিষ্ট পরিবেশের জন্য নির্ভরতা দ্বারা প্রয়োজনীয় নেটিভ লাইব্রেরিগুলি নির্মিত হয়। লিঙ্ক এবং ইনস্টল এই স্ক্রিপ্ট কল কেন হবে।

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