প্যাকেজ-লক.জসন তৈরি করতে এনপিএমকে জোর করার কোনও উপায় আছে কি?


132

আমি এটি দুর্ঘটনাক্রমে মুছে ফেলেছি এবং তখন package.jsonথেকে অনেক পরিবর্তন করেছি । একটি npm installবা আর npm updateজেনারেট package-lock.jsonনা। আমি আমার এনএমপি ক্যাশে এবং আমার এনভিএম ক্যাশে সাফ করার চেষ্টা করেছি, তবে কিছুই কাজ করছে বলে মনে হচ্ছে না। আমি নোড.জেএস এর বিভিন্ন সংস্করণে এটি চেষ্টা করেছি (j.১০.৩ নোড.জেএস - ৩.১০.১০ এনপিএম আমি এটিতে কাজ করতে চাই), এবং এটি কোনওরূপে কাজ করে না।

package-lock.jsonফাইল তৈরি করার জন্য এনপিএমকে জোর করার কোনও উপায় আছে কি ?


2
আমি মনে করি প্যাকেজ-লক.জসন এনপিএম 5-এর সাথে নির্দিষ্ট
— ব্রেট মেরিফিল্ড

3
package-lock.jsonপূর্ববর্তী সংস্করণগুলিতে লক ফাইলের নামটি এনপিএম-এ v5 থেকে শুরু হয়ে ডিফল্টরূপে স্বয়ংক্রিয়ভাবে npm-shrinkwrap.jsonউত্পাদিত হয়েছিল এবং এটি npm shrinkwrapকমান্ড ব্যবহার করে ম্যানুয়ালি তৈরি করা হয়েছিল ।
— অ্যালেক্সম্যাক

@ ব্রেটমারিফিল্ড আপনাকে ধন্যবাদ! আমার সমস্যা ছিল। আমি node 8.6.0এটিতে আপডেট করেছি npm 5.3.0এবং এটি কার্যকর হয়েছে।
— বড় অর্থ

আপনার পরীক্ষা করুন .gitignore। আমি ঘটনাক্রমে ছিল package-lock.jsonমধ্যে .gitignoreএকরকম এবং কারণ package-lock.jsonদেখানো হল না হয় git statusএটা আমার বন্ধ নিক্ষেপ করা হয়।
— জোশুয়া পিন্টার

উত্তর:


155

ডিফল্টরূপে, package-lock.jsonআপনি যখনই চালিত হন আপডেট হয় npm install। যাইহোক, এই সেটিং দ্বারা বিশ্বব্যাপী অক্ষম করা যেতে পারে package-lock=falseযে ~/.npmrc।

যখন গ্লোবাল package-lock=falseসেটিং সক্রিয় থাকে, আপনি এখনও package-lock.jsonচালিয়ে কোনও প্রকল্পের ফাইল আপডেট করতে বাধ্য করতে পারেন :

npm install --package-lock

এই আদেশটি কোনও package-lock.jsonআপডেট জোর করার একমাত্র নিশ্চিত উপায় ।


@ রনউইকম্বম্ব আপনি কি আরও তথ্য ভাগ করতে পারবেন? "এটি কাজ করে না" বলতে কী বোঝ? আপনি কোন এনপিএম সংস্করণ ব্যবহার করছেন?
— ম্যাথিয়াস বাইনেস

এনপিএম সংস্করণ 3.10.10 নোড 6.10.3 আপনি তালিকাবদ্ধ কমান্ডটি কোনও অপ-অফ বলে মনে হচ্ছে? কিছুই ঘটেনি. কোনও ত্রুটি নেই, কোনও ফাইল পরিবর্তন নেই, কিছুই নেই।
— রন নিউকম্ব

2
আপনি যদি আপনার প্রকল্পের জন্য এনপিএম ভি 3 ব্যবহার করে থাকেন তবে আপনার কাছে একটিও নেই package-lock.json। package-lock.jsonকেবল এনপিএম ভি 5 + দ্বারা সমর্থিত।
— ম্যাথিয়াস বায়েন্স

8
এনপিএম ভি 6.4.1 এবং এটি প্যাকেজ-লক.জসন তৈরি করে না
— mjuopperi

1
এটি আমার জন্য কাজ করে, 6.4.1 এ। এটিকে মিথ্যাতে সেট করা এটিকে তৈরি করতে বাধা দেয়।
— কেভিন বি

94

এনএমপি 6.x এ আপনি ব্যবহার করতে পারেন

npm i --package-lock-only

Https://docs.npmjs.com/cli/install.html অনুসারে

কেবলমাত্র প্যাকেজ-লক-যুক্তি নোড_মডিউলগুলি পরীক্ষা করে নির্ভরতা ডাউনলোড করার পরিবর্তে কেবল প্যাকেজ-লক.জসন আপডেট করবে।


12
এটি এখন সঠিক উত্তর, অন্যরাও পুরানো এবং কাজ করবে না।
— বৈভব সিং

কোনও সংকেত কীভাবে ডেভডিপেন্ডেন্স ছাড়াই প্যাকেজ-লক.জসন তৈরি করতে পারে? পরিষ্কার উত্পাদন ইনস্টলের জন্য আমার এটি দরকার। npm i --package-lock-only --only=productionকাজ মনে হচ্ছে না।
— রবার্ট

আমি মনে করি না package-lock.jsonকেবল উত্পাদন নির্ভরতার জন্যই উত্পাদন করা সম্ভব । তবে আপনি যদি চালান তবে npm i --only=productionএটি কেবল উত্পাদন নির্ভরতা ইনস্টল করা উচিত। সুতরাং আপনার বিল্ড প্রক্রিয়াটি দেখতে দেখতে পারে: সমস্ত নির্ভরতা ইনস্টল করুন, অ্যাপ্লিকেশন তৈরি করুন, node_modulesকেবল উত্পাদন নির্ভরতাগুলি সরান এবং ইনস্টল করুন।
— জানুস প্রিজিবিস্কি

14

মন্তব্যে এর উত্তর দেওয়া হয়েছে; ভি 5 এবং উচ্চতর package-lock.jsonবৈশিষ্ট্য npm। npm shrinkwrapআপনি কীভাবে সমস্ত সংস্করণে লকফিল তৈরি করেন npm।


1
নোট করুন, তবে, সেগুলি package-lock.jsonসঙ্কুচিত ফাইলগুলির মতো ঠিক একই জিনিস নয়।
— strugee

7
এনপিএম 5+ এ, বাস্তবে, হুবহু একই, প্রতিটি বিষয় বাদে, একটি জিনিস বাদে: npm-shrinkwrap.jsonরেজিস্ট্রিতে প্রকাশ করা package-lock.jsonহবে , এবং তা হবে না।
— এলজেহার্ব

6
হাঁ। যদিও এটি বেশ গুরুত্বপূর্ণ একটি পার্থক্য, যার কারণে আমি আমার মন্তব্যটি রেখেছি।
— strugee

1
npm shrinkwrapজেনারেট করে npm-shrinkwrap.jsonতবে আপনি কীভাবে জেনারেট করেন package-lock.json?
— ভিক

5
এটি এনপিএম 5+ এ স্বয়ংক্রিয়, অথবা আপনি এটিকে 5+ এ জোর করে করতে পারেন--package-lock
— এলজেহার্ব

1

বেশ কয়েকটি উত্তর হিসাবে আপনার রান করা উচিত:

npm i

কিন্তু সেটা না হলে না সমাধান ...

আপনার npmএক্সিকিউটেবলের সংস্করণটি দেখুন । (আমার কাছে এটি ছিল ৩.৫ xxx যা ব্যবহার করে না package-lock.json( মোটেও ))

npm -v

এটি কমপক্ষে 5.xx হওয়া উচিত (যা প্যাকেজ-লক.জসন ফাইলটি প্রবর্তন করেছে))

লুনিক্স অনুসরণ করে এনপিএম আপডেট করুন এই নির্দেশাবলী ।

আরও বিশদের জন্য প্যাকেজের ফাইলগুলি দয়া করে এই মাঝারি গল্পটি পড়ুন।


0

যদি আপনার এনএমপি সংস্করণ 5 সংস্করণের চেয়ে কম হয় তবে প্যাকেজ-লক.জসনের স্বয়ংক্রিয় প্রজন্মের জন্য উচ্চতর সংস্করণটি ইনস্টল করুন ।

উদাহরণ: আপনার বর্তমান এনপিএম সংস্করণ 6.14.0 এ আপগ্রেড করুন

npm i -g npm@6.14.0

আপনি সর্বশেষে এনএমপি সংস্করণ তালিকাটি দেখতে পেলেন

npm view npm versions

-3

আপনি যখনই চালনা করবেন প্যাকেজ-লক.জসন পুনরায় উত্পন্ন হয় npm i।


13
এটি কেবলমাত্র কয়েকটি সংস্করণ nodeএবং এর ক্ষেত্রেই সত্য npm। আমি মনে করি এটি npm> = 5.0এবং node> = 7.0, তবে আমি এতে 100% নিশ্চিত নই। এটা node 6.11.3আমার জন্য কাজ করে না ।
— Thor84no

2
এছাড়াও এনএমপি কনফিগারেশনে প্যাকেজ-লকটি মিথ্যাতে সেট থাকলে সত্য নয়। চেক করতে 'এনপিএম কনফিগারেশন তালিকা' ব্যবহার করুন
— ড্যামো

প্যাকেজ-লক.জসন স্বয়ংক্রিয়ভাবে এমন কোনও ক্রিয়াকলাপের জন্য উত্পন্ন হয় যেখানে এনপিএম নোড_মডিউল গাছ বা প্যাকেজ.জসনকে সংশোধন করে। থেকে Acorrding docs.npmjs.com/files/package-lock.json । তবে এনপিএম সংস্করণ নির্দিষ্ট করা হয়নি।
— ন্যানোনাভা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.