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


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.jsonpackage-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বৈশিষ্ট্য npmnpm 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.