প্রায় 2 ম্যানুয়াল নি: শ্বাসে বলে আমি আরো এক সময় স্থানীয়ভাবে নি: শ্বাসে ইনস্টল করতে প্রথম বিশ্বব্যাপী (-G পতাকা দিয়ে) এবং তারপর প্রয়োজন যে। আমার কেন এটি দরকার?
প্রায় 2 ম্যানুয়াল নি: শ্বাসে বলে আমি আরো এক সময় স্থানীয়ভাবে নি: শ্বাসে ইনস্টল করতে প্রথম বিশ্বব্যাপী (-G পতাকা দিয়ে) এবং তারপর প্রয়োজন যে। আমার কেন এটি দরকার?
উত্তর:
বিশ্বব্যাপী কোনও সরঞ্জাম ইনস্টল করার সময় এটি কোনও নোড প্রকল্পের বাইরের সহ কোনও কমান্ড লাইন ইউটিলিটি হিসাবে কোনও ব্যবহারকারীকে ব্যবহার করতে হবে। নোড প্রকল্পের জন্য গ্লোবাল ইনস্টলগুলি খারাপ কারণ তারা স্থাপনাকে আরও কঠিন করে তোলে।
npxউপযোগ সাথে বান্ডেল npm 5.2সমাধান এই সমস্যা। এটির সাহায্যে আপনি স্থানীয়ভাবে ইনস্টল হওয়া ইউটিলিটিগুলি যেমন বিশ্বজুড়ে ইনস্টল ইউটিলিটিগুলি (তবে আপনাকে অবশ্যই কমান্ডটি দিয়ে শুরু করতে হবে npx) অনুরোধ করতে পারেন। উদাহরণস্বরূপ, আপনি যদি স্থানীয়ভাবে ইনস্টল করা চান তবে আপনি এটি eslintকরতে পারেন:
npx eslint .
যখন একটি ব্যবহৃত scriptআপনার package.json এর ক্ষেত্র, npmঅনুসন্ধান node_modulesপাশাপাশি গ্লোবালি ইনস্টল্ড মডিউল হিসাবে টুল জন্য, তাই স্থানীয় ইনস্টল যথেষ্ট।
সুতরাং, আপনি যদি (আপনার প্যাকেজ.জসনে) এর সাথে সন্তুষ্ট হন:
"devDependencies": {
"gulp": "3.5.2"
}
"scripts": {
"test": "gulp test"
}
ইত্যাদি এবং এর সাথে চলমান npm run testআপনার গ্লোবাল ইনস্টল করার প্রয়োজন হবে না।
উভয় পদ্ধতিই আপনার প্রকল্পের সাথে লোকেরা সেট আপ করার জন্য দরকারী কারণ যেহেতু sudoপ্রয়োজন নেই। এর অর্থ হ'ল gulpআপডেট করা হবে যখন সংস্করণটি প্যাকেজ.জসনে বিছিন্ন করা হবে, সুতরাং প্রত্যেকে আপনার প্রকল্পের সাথে বিকাশ করার সময় একই ধরণের গুল্প ব্যবহার করবে।
এটি বিশ্বব্যাপী ব্যবহার করার সময় গোপালের কিছু অস্বাভাবিক আচরণ রয়েছে বলে মনে হয়। গ্লোবাল ইনস্টল হিসাবে ব্যবহার করা হলে, কন্দ নিয়ন্ত্রণ সঞ্চার করার জন্য স্থানীয়ভাবে ইনস্টল করা গল্পের সন্ধান করে। অতএব একটি গল্ফ গ্লোবাল ইনস্টল কাজের জন্য একটি ঝাঁকুনির স্থানীয় ইনস্টল প্রয়োজন। উপরের উত্তর যদিও এখনও আছে। স্থানীয় ইনস্টলগুলি সর্বদা বিশ্বব্যাপী ইনস্টলের চেয়ে বেশি পছন্দনীয়।
./node_modules/.bin/gulp।
gulpএবং coffeeসুতরাং কমান্ডগুলি আমার নোড প্রকল্পের রুট (যেমন। alias gulp="node_modules/.bin/gulp") থেকে কাজ করে। এইভাবে কমান্ডগুলি প্রয়োজনে ব্যবহার করা সহজ এবং বিশ্বব্যাপী / স্থানীয় সংস্করণ সংঘাত না ঘটে।
gulpএটি আমাকে নীচের ত্রুটি বার্তা দেয় Local gulp not found in ...। আমি যতদূর বুঝতে পারি, এটি প্রথমে স্থানীয় নোড_মডিউলগুলির দিকে নজর দেওয়া উচিত এবং যদি এটি না পাওয়া যায় তবে এটি বিশ্বব্যাপী ইনস্টল করা মডিউলগুলির দিকে নজর দেওয়া উচিত, তাই না? ধন্যবাদ!
TLDR; এখানে কেন :
কারণ কারণ এই কাজ করে
gulpচেষ্টা আপনার চালানোর জন্যgulpfile.jsআপনার স্থানীয়ভাবে ইনস্টল সংস্করণ ব্যবহারgulpদেখতে এখানে । অতএব গল্পের একটি বৈশ্বিক এবং স্থানীয় ইনস্টল করার কারণ।
মূলত, আপনি gulpস্থানীয়ভাবে ইনস্টল করার সময় স্ক্রিপ্টটি এতে নেই PATHএবং সুতরাং আপনি gulpশেলটি টাইপ করতে এবং প্রত্যাশা করতে পারবেন না যে কমান্ডটি সন্ধান করা হবে। এটি বিশ্বব্যাপী ইনস্টল করার মাধ্যমে gulpস্ক্রিপ্টটি আপনার মধ্যে আসে PATHকারণ গ্লোবাল node/bin/ডিরেক্টরি সম্ভবত আপনার পথে on
আপনার স্থানীয় নির্ভরতা সম্মান করতে যদিও, gulpএটি চালানোর জন্য আপনার স্থানীয়ভাবে ইনস্টল হওয়া সংস্করণটি ব্যবহার করবে gulpfile.js।
gulpপ্যাকেজটি সঠিকভাবে রাখার জন্য প্রয়োজন node_modules/.bin/gulp। স্টোরেজ সস্তা তবে একটি সিমিলিংক অনুকরণের জন্য এমবি ফেলে দেওয়া হ'ল আইএমও খাঁটি opালু।
আপনি gulpস্থানীয়ভাবে স্থানীয়ভাবে ইনস্টল লিঙ্ক করতে পারেন
npm link gulp
npm link।
" কেন আমাদের বিশ্বজুড়ে এবং স্থানীয়ভাবে গাল্প ইনস্টল করার দরকার? " এই প্রশ্নটি নীচের দুটি প্রশ্নের মধ্যে বিভক্ত হয়ে যায়:
আমি যদি ইতোমধ্যে বিশ্বব্যাপী এটি ইনস্টল করে থাকি তবে স্থানীয়ভাবে আমার কেন ঝালর ইনস্টল করা দরকার?
আমি যদি ইতোমধ্যে স্থানীয়ভাবে ইনস্টল করে থাকি তবে কেন বিশ্বজুড়ে আমার ঝালর ইনস্টল করা দরকার?
আরও কয়েকজন বিচ্ছিন্নভাবে এই প্রশ্নগুলির দুর্দান্ত উত্তর সরবরাহ করেছেন, তবে আমি ভেবেছিলাম একীভূত উত্তরে তথ্য একত্রিত করা উপকারী হবে।
আমি যদি ইতোমধ্যে বিশ্বব্যাপী এটি ইনস্টল করে থাকি তবে স্থানীয়ভাবে আমার কেন ঝালর ইনস্টল করা দরকার?
স্থানীয়ভাবে গুল্প ইনস্টল করার যুক্তি বিভিন্ন কারণ নিয়ে গঠিত:
আমি যদি ইতোমধ্যে স্থানীয়ভাবে ইনস্টল করে থাকি তবে কেন বিশ্বজুড়ে আমার ঝালর ইনস্টল করা দরকার?
স্থানীয়ভাবে ইনস্টল করা এড়াতে আপনি ব্যবহার করতে পারেন npm link [package], তবে লিঙ্ক কমান্ডের পাশাপাশি install --globalকমান্ডটি --save-devবিকল্পটিকে সমর্থন করবে বলে মনে হচ্ছে না যার অর্থ বিশ্বব্যাপী গল্প ইনস্টল করার সহজ উপায় বলে মনে হচ্ছে না এবং তারপরে যে কোনও সংস্করণ সহজেই যুক্ত করা যায় appear আপনার স্থানীয় প্যাকেজ.জসন ফাইল।
শেষ পর্যন্ত, আমি বিশ্বাস করি যে আপনার সমস্ত প্রকল্পগুলিতে সাধারণ সরঞ্জামগুলি ইনস্টল করার অনুরোধটি এড়াতে গ্লোবাল মডিউলগুলি ব্যবহার করার বিকল্পটি আরও বোধগম্য হয়ে উঠেছে, বিশেষত গ্রান্ট, গাল্প, জিশিন্ট ইত্যাদির মতো উন্নয়ন সরঞ্জামগুলির ক্ষেত্রে the মনে হচ্ছে আপনি যখন শস্যের বিরুদ্ধে যাচ্ছেন তখন আপনি কিছুটা লড়াইয়ে শেষ করেছেন।
প্রযুক্তিগতভাবে node_modulesআপনার স্থানীয় ইনস্টলেশন ফোল্ডারটি যদি আপনার থাকে তবে বিশ্বব্যাপী এটি ইনস্টল করার দরকার নেই PATH। সাধারণত এটি একটি ভাল ধারণা নয়।
বিকল্প হিসাবে যদি npm testরেফারেন্সগুলি থাকে gulpতবে আপনি কেবল টাইপ করতে পারেন npm testএবং এটি স্থানীয় ঝাঁকুনি চালাবেন।
আমি বিশ্বব্যাপী গুল্প কখনও ইনস্টল করি নি - আমার মনে হয় এটি খারাপ ফর্ম।
আমি নিশ্চিত না যে আমাদের সমস্যাটি কেবল স্থানীয়ভাবে জাল্প ইনস্টল করার সাথে সম্পর্কিত ছিল কিনা। তবে আমাদের একগুচ্ছ নির্ভরতা ইনস্টল করতে হয়েছিল। এটি একটি "বিশাল" প্যাকেজ.জসনের দিকে পরিচালিত করে এবং আমরা নিশ্চিত নই যে স্থানীয়ভাবে কেবল গাল্প ইনস্টল করা সত্যিই দুর্দান্ত ধারণা কিনা। আমাদের বিল্ড পরিবেশের কারণে আমাদের এটি করতে হয়েছিল। তবে আমি যদি গাল্পটি একেবারে প্রয়োজনীয় না হয় তবে বিশ্বজুড়ে ইনস্টল করার পরামর্শ দেব না। আমরা নিম্নলিখিত ব্লগ-পোস্টে বর্ণিত একই ধরণের সমস্যার মুখোমুখি হয়েছি
আমাদের কোনও বিকাশকারীদের তাদের স্থানীয় মেশিনে এই সমস্যাগুলির কোনওটিই উত্থাপিত হয় না কারণ তারা সবাই বিশ্বব্যাপী দুল কাটেছে। বিল্ড সিস্টেমে আমাদের বর্ণিত সমস্যা ছিল। কেউ আগ্রহী হলে আমি এই ইস্যুটির আরও গভীর দিকে ডুব দিতে পারি। তবে এই মুহুর্তে আমি কেবল উল্লেখ করতে চেয়েছিলাম যে স্থানীয়ভাবে ঝাঁকুনি ইনস্টল করার পক্ষে এটি সহজ পথ নয়।
আমি এটি এখানে না দেখায় কেবল আপনি ম্যাকওএস বা লিনাক্সে থাকলে, আমি আপনাকে এটিকে আপনার রাস্তায় যুক্ত করার পরামর্শ দিই (আপনার বাশার্কে ইত্যাদি):
node_modules/.bin
এই আপেক্ষিক পাথ এন্ট্রি সহ, আপনি যদি কোনও নোড প্রকল্পের মূল ফোল্ডারে বসে থাকেন তবে আপনি "গ্লোবাল ইনস্টলগুলি" বা npm runইত্যাদি সম্পর্কে চিন্তা না করে কোনও কমান্ড লাইন সরঞ্জাম (এসলিন্ট, গাল্প, ইত্যাদি) চালাতে পারেন you
একবার এটি করার পরে, আমি বিশ্বব্যাপী কোনও মডিউল ইনস্টল করিনি।