এনপিএম ইনস্টল ডিভিনিডেন্সগুলি ইনস্টল করবে না


256

উইন্ডোজে কোনও কারণে যখন আমি npm installএটি চালিত করি তখন এটি ডেভডিপেন্ডেন্সগুলি ইনস্টল করে না । এটি করা উচিত। যদি আমি চালনা করি তবে npm install --dev ডেভডিপেন্ডেন্সগুলি ইনস্টল করা আছে। আমি বুঝতে পারি না কেন ডিভডিপেন্সিগুলি খুব বেশি npm installইনস্টল করে না তবে কেবল নির্ভরতা ইনস্টল করে। এর কারণ কী হতে পারে? আমি কীভাবে এটি ঠিক করতে পারি?

আমার প্যাকেজ.জসনের সাথে কিছু ভুল আছে ? এটি সহায়ক হতে পারে যদি নীচে তালিকাভুক্ত করা হয়:

{
  "name": "try-brunch",
  "version": "0.1.0",
  "private": "true",
  "devDependencies": {
    "brunch": "^2.0.4",
    "cssnano-brunch": "^1.1.5",
    "javascript-brunch": "^1.8.0",
    "sass-brunch": "^1.9.2",
    "uglify-js-brunch": "^1.7.8"
  },
  "dependencies": {
    "jquery": "^2.1.4"
  }
}

5
কেন আমরা এমনকি এটির জন্য একটি স্থির প্রয়োজন ? এটি ডিফল্ট হওয়া উচিত! মডিউলটির বিকাশকারীদেরdevDependencies আক্ষরিক নির্ভরতা । আমি এটি ব্যবহার করার পরিবর্তে আমাদের বেশিরভাগেরই একটি মডিউল বাজি রাখি । npm install
Ван

বলুন আপনি একটি অ্যাপ লিখেছেন এবং আপনার একটি লগার বা ওয়েবপ্যাক প্লাগইন দরকার। এগুলি ডিডেপস s তাদের ইনস্টল করা প্রয়োজন। এনপিএম কিছু ক্ষেত্রে এগুলি ইনস্টল করে না।
ত্রিস্তান জাজার

1
মানে, devDependenciesআপনি যখন প্যাকেজ (অ্যাপ্লিকেশন) লিখবেন তখনই ইনস্টলেশনটির প্রয়োজন হয় । এটি ব্যবহারের প্রয়োজন হয় না devDependencies। সুতরাং অতিরিক্ত পতাকা ইনস্টল করার প্রয়োজন যুক্তিযুক্ত devDependenciesযদি ডিফল্টরূপেnpm install ইনস্টল করা devDependencies হয় তবে ব্যবহারকারীরাও রিডানড্যান্ট প্যাকেজগুলি পাবেন।
45 Ван

নথিভুক্ত আচরণটি হ'ল আমি যখন npm iআমার ফোল্ডারে এটি করি তখন পাই পাই package.jsonএবং উভয়ই ডিপ এবং ডেভিডপ ইনস্টল করে। এটি এইভাবে কাজ করার উদ্দেশ্যে এবং এটি বোধগম্য হয় (উদাহরণস্বরূপ যখন ওয়েবপ্যাক প্লাগইন সহ আমার যা কিছু প্রয়োজন হবে তা প্রত্যাশার npm iপরে git cloneআমি করি)। এই প্রশ্নটি একটি বাগকে সম্বোধন করে, যখন আসল আচরণ উদ্দেশ্য থেকে আলাদা হয়। প্লিজ, ডক্স দেখুন - ডকস.এনপিজেএস . com / cli / install । দেবদেপগুলি ইনস্টল না করার জন্য একটি পতাকা রয়েছে, তবে তাদের ইনস্টল করা পূর্বনির্ধারিত আচরণ হ'ল যা সঠিক ধারণা দেয় এবং প্রত্যেকেই প্রত্যাশা করেন
ত্রিস্তান জাজার

আমি ইনস্টল করার জন্য আমাকে অন্য কোনও কমান্ড চালিয়ে যেতে স্মরণ করিয়ে দেওয়ার কোনও বুদ্ধিমান কারণ দেখতে পাচ্ছি না, যেমন প্রতিবার আমি টানছি তখন ওয়েবপ্যাক প্লাগইনস বা টাইপসক্রিপ্ট টাইপ ডিফস বা অন্য কোনও ডিডেপস। npm i উভয়কেই বুটস্ট্র্যাপ করা উচিত যা উদ্দেশ্যমূলক, বুদ্ধিমান এবং দলিলযুক্ত আচরণ, তাই আমি কেন সত্যই বুঝতে পারি না যে আপনি কেন এই সমস্যাটির মান হওয়া উচিত বলে মন্তব্য করেছেন
ত্রিস্তান জাজার

উত্তর:


305

ইনস্টলের জন্য এনপিএম ডক্স পরীক্ষা করে দেখুন

সঙ্গে --productionপতাকা (অথবা যখন NODE_ENV এনভায়রনমেন্ট ভেরিয়েবল প্রকাশনা সেট করা হয়), npm devDependencies তালিকাভুক্ত মডিউল ইনস্টল করতে হবে। "

--only={prod[uction]|dev[elopment]}যুক্তি পারেন শুধুমাত্র devDependencies অথবা শুধুমাত্র অ devDependencies NODE_ENV নির্বিশেষে ইনস্টল করার জন্য হতে হবে। "

আপনি চেষ্টা করেছেন?

npm install --only=dev

আপনি যদি উদ্বিগ্ন হন যে আপনার প্যাকেজ.জসনটি ভুল হতে পারে তবে করণীয় সেরা। একটি নতুন ফোল্ডার তৈরি করুন এবং চালান:

npm init --yes

তারপর:

npm install --save-dev brunch@^2.0.4
npm install --save-dev cssnano-brunch@^1.1.5
npm install --save-dev javascript-brunch@^1.8.0
npm install --save-dev sass-brunch@^1.9.2
npm install --save-dev uglify-js-brunch@^1.7.8
npm install jquery@^2.1.4 --save

এবং আপনি যেতে ভাল করা উচিত! অন্যথায়, অন্যান্য বিকল্প পোস্ট করাতে থাকবে।

আপনার এনপিএম কনফিগারেশন পরীক্ষা করুন:

npm config list

কমান্ড লাইন, এনভায়রনমেন্ট ভেরিয়েবল এবং এনএমপিআরসি ফাইলগুলি থেকে এনপিএম তার কনফিগারেশন সেটিংস পায়। সুতরাং এনভায়রনমেন্ট ভেরিয়েবল এবং এনপিএমসিআর ফাইল পরীক্ষা করে দেখুন।

এখনও ব্যর্থ?

ঠিক আছে, আপনার ফাইল সিস্টেমে আদর্শভাবে অন্য কোনও ফোল্ডার তৈরি করুন। অর্থাত। একই ফোল্ডার শ্রেণিবিন্যাসে নয়। উদাহরণস্বরূপ, সি: \ myNewWolder - বেস সি এর কাছাকাছি: আরও ভাল চালনা করুন।

তারপরে চালান:

npm init --yes

এখন চালান:

npm install underscore --save

এবং পরিশেষে:

npm install mocha --save-dev

প্রত্যাশার মতো সবকিছু কি কাজ করে?

আমি যা করার চেষ্টা করছি তা বোঝা যাচ্ছে যে আপনার সমস্যাটি বিশ্বব্যাপী, বা পূর্ববর্তী ফোল্ডার এবং নির্ভরতাতে স্থানীয় কিছু।


ত্রিস্তান - এটি আপনার পরিস্থিতিকে সাহায্য করে? দয়া করে আপনি উত্তরটিকে সঠিক হিসাবে চিহ্নিত করতে পারেন, বা অন্যথায় উপরের চেষ্টা করার ফলাফলটি আমাকে জানাবেন?
আর্সেল্ডন

2
npm ইনস্টল করুন --only = dev ইনস্টল করে দেবডিপগুলি, তবে আমি একই সাথে উভয়ই ডিপ এবং ডেভিডপ ইনস্টল করতে চাই। প্যাকেজ.জসন মনে হচ্ছে ঠিক আছে, কারণ এটি পুনরুক্তি করার ফলে কোনও পরিবর্তন হয় না। আমি কি ঠিক বলেছি যে NODE_ENV বিশ্বজুড়ে, একটি ডিফল্ট মান এবং স্থানীয়ভাবে প্রকল্পের মান হিসাবে বিদ্যমান? আমি উইন্ডোতে এই মানগুলি কোথায় পরীক্ষা করতে ও পরিবর্তন করতে পারি (আমি দেখেছি এবং আমার কাছে সিস্টেমের চলক NODE_ENV নেই)
ত্রিস্তান

@ ত্রিস্তানটিজারা - আমি আজকাল ম্যাকের উপর প্রায় একচেটিয়াভাবে কাজ করি। তবে, (এনটি এবং এক্সপিতে বছর আগে) কেটে যাওয়া দিনের স্মৃতি থেকে - আপনি কমান্ড প্রম্পট উইন্ডোতে "সেট" জাতীয় কিছু টাইপ করতে পারেন .. অন্যথায় সিস্টেম বৈশিষ্ট্য -> উন্নত -> পরিবেশের ভেরিয়েবলের মতো কিছুতে যান এবং সেখানে আপনার প্রবেশদ্বারগুলি পরীক্ষা করতে পারেন । আপনি NODE_ENV সহ একটি "কী" সন্ধান করছেন। উইন্ডোজ অপশনের জন্য আমি এখন গুগল করব তবে এটি যদি সহায়তা করে তবে পোস্ট করুন।
আর্সেল্ডন

এখানে লিঙ্ক করুন - winaero.com/blog/…
আর্সেল্ডন

@ ত্রিস্তানতজারা - এটি জেনে রাখা ভাল। একটি চিন্তা, আপনার ডিরেক্টরি উপরে কাজ করে না যে সমস্ত পিতামাতার ডিরেক্টরি পরীক্ষা করুন। একটি বিদ্যমান নোড_মডিউল ফোল্ডারটি সন্ধান করুন ... নির্ভরতা সমাধানের চেষ্টা করার সময় এনপিএম উপরের দিকে অনুসন্ধান করবে এবং এটি কোনও অদ্ভুত কিছু হতে পারে এটি কোনও ডিরেক্টরি ইনস্টল করা মডিউলটিকে ডিরেক্টরি ডিরেক্টরীতে আরও উপরে তুলছে এবং তাই সন্তানের ফোল্ডারে আপনার ইনস্টল করতে অস্বীকার করছে । সাধারন জায়গাটি ঠিক আপনার বাড়ির ডিরেক্টরিতে রয়েছে .. শুভকামনা এবং আমার উত্তর স্বীকার করার জন্য আপনাকে ধন্যবাদ: ডি
আর্সেল্ডন

85

এনপিএম কনফিগারেশন উত্পাদন মানটি সেট করা আছে কিনা তা পরীক্ষা করুন। যদি এই মানটি সত্য হয় তবে এটি ডেভ নির্ভরতাগুলি ছাড়বে।

চালান npm config get production

এটি সেট করতে: npm config set -g production false


আমি ভাবছি, npm 5.x এবং npm 6.x, যদি কোনো মূল্যই ছিল, ডিফল্ট হয়ে মধ্যবর্তী কোথাও trueবদলে false?
জেমস পেরিহ

38

নিশ্চিত করুন যে আপনার NODE_ENVকাছে 'উত্পাদন' তে এনভির ভেরিয়েবল সেট নেই।

আপনি যদি করেন তবে --devপতাকা ছাড়া দেব নির্ভরতা ইনস্টল করা হবে না


আমি আমার সিস্টেমের ভেরিয়েবলগুলি একবার দেখেছি এবং আমার কাছে এটি এখনও নেই। আমি ভুল জায়গায় তাকিয়ে থাকতে পারে?
ত্রিস্তান জাজার

13
দয়া করে মনে রাখবেন যে npm install --devডিভিনিডেন্ডেন্সগুলি পুনরাবৃত্তি ইনস্টল করে । এটি আপনি যা চান তা প্রায় কখনও হয় না এবং বাস্তবে হ্রাস করা হয়
Wonko

ধন্যবাদ. আমি জানতাম না যে এটি নিয়মিত এনপিএম ইনস্টলের ক্ষেত্রে প্রভাব ফেলবে, তবে এটি যুক্তিযুক্ত। :)
Lothre1

6
--devবিকল্পের ব্যবহার অবচয় করা হয়েছে। --only=devপরিবর্তে ব্যবহার করুন
সারথ আক

16

package-lock.jsonআমার প্যাকেজ.জসনের একটি পুরানো সংস্করণ থেকে আমার কাছে একটি ফাইল ছিল , আমি এটি মুছলাম এবং তারপরে সবকিছু সঠিকভাবে ইনস্টল করা হয়েছে।


বিঙ্গো! এটি আমার সমস্যা সমাধান করেছে। দেখে মনে হচ্ছে আমাদের রেপোতে এটি করা উচিত ছিল।
এলোমেলোভাবে

9

আমারও একই সমস্যা ছিল। npm install --only=devকাজ করেনি, এবং করেনিও npm rebuild। শেষ পর্যন্ত আমাকে মুছতে হয়েছিল node_modulesএবং আবার package-lock.jsonচালাতে হয়েছিল npm install। এটা আমার জন্য এটি স্থির।


7

আপনি কেবলমাত্র উন্নয়নের জন্য ইনস্টলেশন নির্ভরতার জন্য সংক্ষিপ্ত পথটি ব্যবহার করতে পারেন:

npm i -D <dependencies-names>

সর্বোত্তম উত্তর. Shpuld শীর্ষে থাকুন
wwwwwwwwwwww

6

আপনার package.jsonবৈধ কিনা তা নিশ্চিত করুন ...

আমার নিম্নলিখিত ত্রুটি ছিল ...

npm WARN Invalid name: "blah blah blah"

এবং এটি একইভাবে devDependenciesইনস্টল করা হয়নি।

এফওয়াইআই, package.json"নাম" পরিবর্তন করে blah-blah-blahএটি ঠিক করা হয়েছে।


0

আমার একই সমস্যা আছে কারণ আমি NODE_ENV=productionডকার তৈরির সময়টি সেট করেছি । তারপরে আমি আরও একটি যুক্ত করি npm install --only=dev। সবকিছু ঠিকঠাক কাজ করে। টাইপসিসিপিআর্ট মডিউলগুলি তৈরি করার জন্য আমার ডেভিনিডেক্সেন্স দরকার

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