এনপিএম স্ক্রিপ্ট চলাকালীন কীভাবে আউটপুট দমন করা যায়


93

আমি বিল্ড টুল হিসাবে এনপিএম স্ক্রিপ্টগুলির সাথে পরীক্ষার সিদ্ধান্ত নিয়েছি এবং এখন পর্যন্ত আমার এটি পছন্দ হয়েছে। আমি যে সমস্যাটি সমাধান করতে চাই তা হ'ল ঝিস্ট চালানোর জন্য স্ক্রিপ্ট চালানোর সময় যখন কোনও কিছু আবরণ পাস না করে আমি একটি টন "এনপিএম ইআরআর!" পাই! লাইন আমি এগুলি দমন করতে চাই কারণ লিন্টারের আউটপুটটি আরও অর্থবহ।

এটি কি বিশ্বব্যাপী সেট করার ভাল উপায় এবং এটি কি প্রতিটি স্ক্রিপ্ট রান করার জন্য সেট করার কোনও উপায় আছে?

node.js  npm 


এই বিষয়টি সম্পর্কে এখানে একটি সমস্যা রয়েছে: github.com/npm/npm/issues/6124
দাওতাদ

উত্তর:


159

সমস্ত স্ক্রিপ্ট:

আপনি লগ স্তরটিকে silentকয়েকটি উপায়ে সেট করে সামগ্রিকভাবে এনপিএমের আউটপুট দমন করে এটি ঠিক করতে পারেন :

প্রতিটি npm runঅনুরোধে:

npm run --silent <your-script>

বা বিশ্বব্যাপী একটি .npmrcফাইল তৈরি করে (এই ফাইলটি আপনার প্রকল্প ডিরেক্টরিতে বা আপনার হোম ফোল্ডারে থাকতে পারে) নিম্নলিখিতগুলির সাথে:

loglevel=silent

সংস্থানসমূহ:

এনপিএম লগ স্তর কনফিগারেশন: https://docs.npmjs.com/misc/config#loglevel

npmrc: https://docs.npmjs.com/misc/config#loglevel lo

প্রতিটি স্ক্রিপ্ট, পৃথকভাবে:

একটি সহজ কৌশল যা আমি লিঙ্কিংয়ের মতো নির্দিষ্ট স্ক্রিপ্টগুলিতে এই সমস্যাটি ঘুরে দেখতে পেয়েছি তা || trueহল এই জাতীয় স্ক্রিপ্টগুলির শেষে যুক্ত করা end এটি কোনও এনপিএম কনফিগার পরিবর্তন ছাড়াই কাজ করবে।

এটি নিশ্চিত করবে যে স্ক্রিপ্টটি সর্বদা একটি 0স্থিতি সহ প্রস্থান করবে । এই কৌশলগুলি স্ক্রিপ্টটি সফলভাবে ভাবতে ভাবায়, তাই ERRবার্তাগুলি লুকিয়ে রাখে । আপনি যদি আরও সুস্পষ্ট হতে চান তবে আপনি || exit 0পরিবর্তে সংযোজন করতে পারেন এবং এটি একই ফলাফল অর্জন করা উচিত।

{
  "scripts": {
    "lint": "jshint || true",
   }
}

|| সত্য যদি কাজ হয় না তবে আপনি এনপিএম-র শেষের দিকে প্রবন্ধগুলি যুক্ত করার চেষ্টা করছেন - যেমন। এনপিএম myCmd চালান - --deploy
আর্সেল্ডন

4
এটি সত্যিই বেশ অযৌক্তিক (আপনাকে দোষ দিচ্ছে না)। আমি সংযোজন করতে চাই না || true; এটি একটি ভাল সমাধান নয়। আমি অন্য সমস্ত কমান্ড ব্যবহার করে নিঃশব্দ করতে চাই না .npmrc। এবং এই নির্দিষ্ট স্ক্রিপ্টটি -sসর্বদা চালানোও খুব নির্বোধ বলে মনে হয়। কেউ কি একটি একক স্ক্রিপ্ট স্থির করার জন্য এর চেয়ে ভাল সমাধান খুঁজে পেয়েছে?
পাস্কালভি কেটেন

অন্য কেউ যদি এটির সামনে আসে তবে সেখানে একটি মুক্ত সমস্যা আছে - github.com/npm/npm/issues/8821 দেখুন
ইয়ান রাউলেজ

লগলেভেল = নীরব আমার কাছে অতিশয় মনে হয়। এটি এমনকি ত্রুটি বার্তাগুলি নিঃশব্দ করবে (যদিও সেগুলি স্থানীয় ফাইলে লেখা থাকবে)। এই পরামর্শের সাথে সাথেই লিঙ্ক অনুসারে, সম্ভাব্য লগ স্তরগুলি অগ্রাধিকার ক্রমে হ'ল: "নীরব", "ত্রুটি", "সতর্কতা", "নোটিশ", "এইচটিপি", "সময়", "তথ্য", "ক্রিয়াপদ" "," নির্বোধ "। আমি "ত্রুটি" (যা সতর্কতাগুলিকে দমন করবে তবে ত্রুটি প্রদর্শন করবে) বা "সতর্কতা" (যা সতর্কতা অন্তর্ভুক্ত করবে) এর পরামর্শ দেব। এনপিএমের সাধারণত আমাদের দেখানোর কোনও কারণ নেই যে এটি কীভাবে চালানো হবে তা কীভাবে নির্ধারণ করে এটি পূর্বনির্ধারিতভাবে কী করে। এটি ডিবাগিং টেক্সটের মতো অনুভব করে।
জন ডিঘান

ঠিক আছে, আমাকে নিজের সংশোধন করতে হবে এবং আপত্তি তুলতে হবে। সম্ভবত এটি একটি নোড.জেএস বাগও? যখন আমি 'লগলেভেল = ত্রুটি' দিয়ে একটি .npmrc ফাইল তৈরি করেছি, তখন 'এনপিএম পরীক্ষা' চালানো এখনও কী আদেশের লাইনটি চালানো হবে তা নির্ধারণের জন্য এনপিএমের যুক্তির মাধ্যমে সনাক্ত করা যায়। নোড সংস্করণ 8.12.0, এনপিএম সংস্করণ 5.8.0।
জন ডিঘান

44

আপনার যেমন দুটি হিসাবে --quietএবং --silentবিকল্পগুলি ব্যবহার করতে সক্ষম হওয়া উচিত

npm install --quiet

--quietstderr এবং সতর্কতা প্রদর্শন করবে, --silentপ্রায় সবকিছু দমন করা উচিত

আপনি stdout / stderr এ যেমন পাঠাতে /dev/nullপারেন:

npm install > "/dev/null" 2>&1

বা কম ভার্সবোজ

npm install &> /dev/null

7
উইন্ডোজে, এটি এনপিএল ইনস্টল করুন
মনোহর রেড্ডি পোরেডি

4
এই প্রশ্নটি বিশেষত এনপিএম স্ক্রিপ্টগুলি চালানো সম্পর্কে ।
হ্যাকেল

7
npm install --quiet --no-progress 

সতর্কতা এবং ত্রুটিগুলি রাখবে এবং এটি সমর্থন করে এমন টার্মিনালগুলিতে ADHD অগ্রগতি দমনকে দমন করবে।


4
এই প্রশ্নটি বিশেষত এনপিএম স্ক্রিপ্টগুলি চালানো সম্পর্কে ।
হ্যাকেল

1

ইভেন্ট শ্রোতাদের সরিয়ে আপনি আপনার স্ক্রিপ্টের ভিতরে এটি করতে পারেন

#!/usr/bin/env node

process.removeAllListeners('warning');

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