আমি কীভাবে আমার প্যাকেজ-লক.জসনে প্যাকেজ.জসনে তালিকাভুক্ত নয় এমন একটি এনপিএম প্যাকেজ ঠিক করব?


91

গিথুব আমাকে বলছেন যে আমার প্যাকেজ-লক.জসন ফাইলে নির্ভরতা দুর্বল এবং পুরানো। সমস্যাটি হ'ল আমি যদি করি npm installবা না করি তবে npm updateতাদের দু'জনই প্যাকেজ-লক.জসন ফাইলে নির্ভরতা আপডেট করে।

আমি এটিতে প্রচুর গুগলিং করেছি, পাশাপাশি ফাইলটি মুছে ফেলেছি এবং করেছি npm install

যদি কেউ এর সমাধান করতে সহায়তা করতে পারে তবে আমি এটির প্রশংসা করব। প্রশ্নে থাকা প্যাকেজটি হুক, যা আমার প্যাকেজ.জসন ফাইলটিতে আসলে নেই।

অগ্রিম ধন্যবাদ.


4
আপনার প্যাকেজ-লক.জসন মুছে ফেলার চেষ্টা করুন এবং আবার
এনপিএল

4
কোনটি কুকি নির্ভর করে তার উপর নির্ভর করে তা নির্ধারণ করতে এবং আপনার সেটিকে আপডেট করতে আপনি আপনার নির্ভরতাগুলি পরীক্ষা করতে পারেন। (তবে আপনি ভাগ্যের বাইরেও থাকতে পারেন এবং সেই নির্ভরতার কোনও নতুন সংস্করণ নেই))
রোল্যান্ড স্টার্ক

আমি @
ish

@ Ikষিকেশধোকরে যেমন বলেছিলাম তেমনই করেছি। সমস্যার সমাধান আমার জন্য
melih sahin

উত্তর:


41

দেখে মনে হচ্ছে যে হিউক আপনার নির্ভরতাগুলির একটির নির্ভরতা (সুতরাং, আপনার প্যাকেজটিতে একটি প্যাকেজ.জসন এটির নিজস্ব প্যাকেজ.জসন থেকে এটি প্রয়োজনীয়) iring

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

আপনার প্রতিটি নির্ভরতার জন্য প্যাকেজ.জসন না দেখে আপডেট আপডেট করার জন্য কীভাবে আরও পরামর্শ দেওয়া কঠিন হবে।

সম্পাদনা করুন: কোন প্যাকেজগুলি কোন নির্ভরতা ব্যবহার করছে তা সনাক্ত করতে আপনাকে এনপিএমের lsআদেশটি ব্যবহার করতে পারেন : https://docs.npmjs.com/cli/ls

উদাহরণস্বরূপ, কোন প্যাকেজগুলি হোইক ব্যবহার করছে তা দেখতে: npm ls hoek

2 সম্পাদনা করুন: ইউলিস বিএন সঠিকভাবে উল্লেখ করেছেন যে আপনার যদি 6 বা তার পরে এনপিএম সংস্করণ থাকে তবে আপনি এনপিএমকে আপনার npm audit fixজন্য দুর্বলতাগুলি সমাধান করার জন্য জিজ্ঞাসা করতে পারেন ।

3 সম্পাদনা করুন: যাঁরা এটি পড়ছেন তাদের নীচে জেবালিনের উত্তরও পরীক্ষা করা উচিত। আমি এখানে যে তথ্য দিয়েছি তা এটি প্রসারিত করে এবং (আমার মতে) এটি আরও কাঠামোগত উত্তর যা ওপির প্রশ্নটিকে আরও ভালভাবে সম্বোধন করে। তবে - আপনি যদি দ্রুত সমাধান চান - এই উত্তরটি যথেষ্ট।


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

আপডেট উত্তর দেখুন। আপনার যদি অতিরিক্ত সহায়তার প্রয়োজন হয় - একটি নতুন প্রশ্ন তৈরি করুন। :)
অ্যালেক্স মুলচিনক

ধন্যবাদ সম্পন্ন হয়েছে: stackoverflow.com/questions/50764225/...
Fuhrmanator

আপনি কি নিশ্চিত যে একটি অতিরিক্ত প্রশ্ন মঞ্জুরিপ্রাপ্ত হয়েছিল? এগুলি সদৃশ বলে মনে হচ্ছে।
জেবালিন

@ জাল্লিন আমার উত্তরটি বেশ কয়েকবার আপডেট হয়েছে। এটি সম্ভবত নকল হিসাবে যোগ্যতা অর্জন করতে পারে নি।
অ্যালেক্স মুলচিনক

24

টিএলডিআর: ব্যবহার করে প্যারেন্ট প্যাকেজ আপডেট করুন npm i $PARENT_PKG_NAME


বিঃদ্রঃ

নির্ভরতা আপডেট করার সময়, কোনও ব্রেকিং পরিবর্তনের জন্য আপনার চ্যানেলগ পর্যালোচনা করা উচিত।

রোগ নির্ণয়

npm auditদুর্বল প্যাকেজ উভয়ই প্রকাশ করবে (নোট করুন যে এর জন্য আপনাকে একটি প্যাকেজ-লক.জসন ফাইলের প্রয়োজন হবে, সুতরাং আপনার চালনা করা দরকার npm i) পাশাপাশি প্যাকেজটি এটি নির্ভর করে (যদি প্রযোজ্য হয়)। আপনি ব্যবহার করতে পারেন তা নোট করুনnpm ls $CHILD_PKG_NAME এর পিতামাতার নির্ভরতা দেখতে করতে পারেন।

দ্রুত সমাধানের চেষ্টা

npm audit fix এবং npm audit fix --force চেষ্টা করে দেখার মতো, তবে কখনও কখনও সমাধানটি ম্যানুয়ালি করা প্রয়োজন (নীচে দেখুন)।

ম্যানুয়াল ফিক্স

সম্ভবত প্যাকেজ প্যাকেজটি ইতিমধ্যে তাদের নির্ভরশীলতাগুলি স্থির করে ফেলেছে (আপনি তাদের গিটহাব এ গিয়ে সাম্প্রতিক কমিটগুলি পর্যালোচনা করে এটি যাচাই করতে পারেন - বা এটি ঠিক করে দিয়েছে কিনা তা দেখে) আপনি কেবল চালনা করতে পারেন npm i $PARENT_PKG_NAME @$NEW_VERSION এবং এটি আপনার প্যাকেজ-লকটি আপডেট করবে .জসন।

অভিভাবকরা যদি দুর্বলতাটি স্থির করেন না

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

ফিক্স যাচাই করুন

আপনি এখন যাচাই করতে পারেন যে এটি চালিয়ে npm auditএবং নিশ্চিত করে যে কোনও দুর্বলতা দেখা যাচ্ছে না by আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করুন, তাদের গিটহাবের দিকে ধাক্কা দিন, আপনার বিজ্ঞপ্তিগুলি / সতর্কতাগুলি রিফ্রেশ করুন এবং সেগুলি চলে যেতে হবে!


আমার ক্ষেত্রে যেমন কুইক ফিক্স এই উত্তরটিতে ম্যানুয়াল কাজ করে না তেমনি পিতামাতার একটি কাঠামো যা আপডেটে সম্পূর্ণরূপে এপিআই পরিবর্তন করে এবং এমনকি লাইব্রেরি থেকে মুক্তি পায়? এটি কারণ পিতামাতার ফ্রেমওয়ার্ক এখনও পুরানো লাইব্রেরি ব্যবহার করে। প্রকৃতপক্ষে পুরাতনটি এখনও মেনটেইনড হয়েছে তবে আপডেট হয়নি, মানে কীভাবে আমি এগিয়ে যেতে পারি?
কারমিন তম্বাস্কিয়া

4
@ কারমাইনটাম্বাসিয়া যদি আপনি যে প্যাকেজটি ব্যবহার করছেন তা যদি তার দুর্বলতাগুলি ঠিক না করে (আমি এটি ইস্যু / PR খোলার আশায় এটি ঠিক হয়ে যাবে) - আমি আপনার নিজের প্যাকেজ (গুলি) এর কাঁটা তৈরি করার বিষয়টি বিবেচনা করব, ক্ষতিগ্রস্থ প্যাকেজ স্থান।
জেবাল্লিন

চাইল্ড প্যাকেজ আপডেট করার কোনও উপায় আছে? ক্ষেত্রে যেখানে প্যারেজ প্যাকেজটি দুর্বলতার জন্য সংশোধন করা হয়নি?
হর্ষিতা

@ হর্ষিতা "যদি পিতা-মাতার দুর্বলতা ঠিক না করে" শিরোনামে বিভাগটি দেখুন
জেবাল্লিন

4
@ হর্ষিতা আপনি কি তাদের কাছে পৌঁছে গেছেন? সেইসাথে দুর্বলতাগুলিও ঠিক করা তাদের আগ্রহের বিষয়।
জেব্যালিন

6

আপনার যদি pm বা তার পরে এনপিএম থাকে তবে আপনি npm audit fixআপনার সুরক্ষা সমস্যার জন্য ব্যবহার করতে পারেন ।


বিভিন্ন সরঞ্জামের প্রচুর পরিমাণ রয়েছে এবং তাদের একই দুর্বলতার ডেটাবেস নেই। আমি যেটিকে সবচেয়ে ক্লান্তিকর বলে মনে করি সে হ'ল স্নিচ।
ইউলিস বিএন

2

ব্যবহার:

এনপিএম আমি হুক

এনপিএম হুকের সর্বশেষতম সংস্করণ ইনস্টল করবে এবং আপনার প্যাকেজ.লক.জসন আপডেট হবে।


0

আমি এই সমস্যাটি পেয়েছি এবং এটি দেখেছি কারণ এটি যে সার্ভারে আমি এনএমপি চালাচ্ছিলাম তাতে এনপিএম-র একটি পুরানো সংস্করণ ছিল package প্যাকেজ-লক.জসন কেবল নতুন সংস্করণ দ্বারা সমর্থিত।


0

আপনি কি এটিকে চেষ্টা করেছেন: আপনার প্রকল্পের রুটে যান, package-lock.jsonফাইলটি node_modulesএবং .cacheফোল্ডারগুলি মুছুন এবং তারপরে npm install


0

দুর্বল এনপিএম প্যাকেজগুলি পরীক্ষা করতে, নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

npm audit

দুর্বল এনপিএম প্যাকেজগুলি ঠিক করতে, কেবল নিম্নলিখিত আদেশগুলি ব্যবহার করুন যা প্যাকেজ-লক.জসনকেও ঠিক করবে:

npm audit fix

0

package-lock.jsonম্যানুয়ালি সম্পাদনা করুন এবং দুর্বল প্যাকেজ সংস্করণ স্থির করে নিন এবং তারপরে ব্যবহার করুন

npm ci

এটি প্রথমে package-lock.jsonউপেক্ষা করে প্যাকেজগুলি ইনস্টল করবে package.json। তারপরে ব্যবহার করুন

npm audit fix

আবার, এটি সঠিকভাবে সম্পন্ন হয়েছে কিনা তা নিশ্চিত হওয়া। এটি যদি তাতে সহায়তা না করে তবে প্রদত্ত সমাধানগুলি ব্যবহার করুন।

এখানে আরও তথ্য:

https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-rereable

বা এখানে: https://docs.npmjs.com/auditing-package-d dependferences-- সুরক্ষার জন্য


অতিরিক্ত সমাধান হতে পারে: npmjs.com/package/npm-check-updates
নিঃসঙ্গ

-3

নতুন নির্ভরতা ইনস্টল করার পরে প্যাকেজ-লক.জসন ফাইল আপডেট করার জন্য নিম্নলিখিত কমান্ডটি চালান:

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