node.js এর জন্য কি ভার্চুয়াল পরিবেশ আছে?


133

আমি উইকি মডিউল পৃষ্ঠাটি সন্ধান করেছি, তবে আমি ভ্যুচুয়ালেনভ (পাইথন) বা আরভিএম এর মতো কিছু পাই না।

এখানে যে কেউ নোড.জেসকে তাদের নিজস্ব vর্ষায় আলাদা করে? আমি সত্যিই এনপিএম সিস্টেম-প্রশস্ত ইনস্টল করতে পছন্দ করি না।

উত্তর:


44

যদি সিস্টেমের প্রশস্ত এনপিএম প্যাকেজগুলি আপনার প্রধান সমস্যা হয় তবে সম্ভবত এনএমপি সহ খুব শীতল 'বান্ডিল' কমান্ডটি ব্যবহার করার বিষয়টি বিবেচনা করুন। এটি আরভিএমের চেয়ে রত্ন হিমায়িত বা রেলগুলিতে বান্ডিলার ব্যবহারের কাছাকাছি।

এটি অত্যন্ত সহজ। কেবল একটি প্যাকেজ.জসন ফাইল তৈরি করুন:

{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}

এবং তারপরে চালান:

npm bundle vendor

বা যদি আপনার এনপিএম সংস্করণ হয়> = 1.0 চালানো:

npm install

বিক্রেতা ডিরেক্টরিতে স্থির করতে। এবং তারপরে ব্যবহার করুন:

require.paths.unshift('./vendor');

1
@ এবং এটিকে আমি নিজেও পরীক্ষা করে দেখিনি, তবে আমি বুঝতে পারি যে এনপিএমের সাম্প্রতিক সংস্করণগুলি কেবল এর npm installজন্য ব্যবহার করে ।
মার্নেন লাইবো-কোসার

13
পরীক্ষিত এবং এখন নিশ্চিত। এনপিএম 1.0 হিসাবে npm installপ্রতিস্থাপন npm bundleকরা হয়েছে, আমি বিশ্বাস করি।
মার্নেন লাইবো-কোসার 19

184

nodeenv - Node.js জন্য ভার্চুয়াল পরিবেশ (এনালগ virtualenv )


এটি শুরুতে দুর্দান্ত দেখায়, তবে আমি নোডেনভের সাথে একই সময়ে নোডেঞ্জের সাথে এনপিএম ইনস্টলেশন সম্পন্ন করতে সক্ষম হইনি নোড.জেএস সংকলিত (অক্স সিংহের উপর)। সম্ভবত আমি প্রতিটি নোডেনভের জন্য এনভিএম ইনস্টল এবং এনপিএম পৃথকভাবে ইনস্টল করতে পারতাম ... চেষ্টা করার কথা ভাবার সাথে সাথে আমার ইতিমধ্যে অন্যান্য নোডের সাথে একাধিক নোড সংস্করণ ছিল।
মিকেল লেপিস্ট

2
বিদ্যমান পাইথন ভার্চুয়াল পরিবেশের মধ্যে ইনস্টল করতে ব্যবহার করা যেতে পারে , যাতে node.jsপাইথন পরিবেশের সাথে পরিবেশটি সক্রিয় হয়। দেখুন nodeenv -p
naitsirhc

3
নোডেনভ (আসলে ভার্চুয়ালেনভ + নোডেনভ) মাছের শেল ব্যবহারকারীদের জন্যও উপযুক্ত, যেহেতু নাভা এবং অন্যরা বাশ এবং জেডশ ছাড়া অন্য কোনও শেল সমর্থন করে না।
আক্কার

1
এর জন্য কি কোনও ভার্চুয়ালেনভ-মোড়কের সমতুল্য?
vmonteco

25

কিছু নোড সংস্করণ পরিচালন সিস্টেম রয়েছে যা সহায়তা করতে পারে।

নাভ https://github.com/isaacs/nave দেখুন

এনভিএম https://github.com/creationix/nvm ব্যবহার করা যেতে পারে

এন https://github.com/visionmedia/n নামেও একটি রয়েছে


1
আপনি যদি একই সময়ে নোড.জেএস এবং এনপিএমের বিভিন্ন সংস্করণ ইনস্টল করতে চান তবে এনভিএম দুর্দান্ত কাজ করে। বিশ্রামের জন্য আমি এনপিএম সহ ডিরেক্টরি ডিরেক্টরিতে প্রয়োজনীয় মডিউল ইনস্টল করা যথেষ্ট পেয়েছি।
মিকেল লেপিস্ট

2
আপনি যদি ডিরেক্টরিগুলি পরিবর্তন করেন nvmবা যদি সন্ধান করেন nএবং স্বয়ংক্রিয় স্যুইচিং চান তবে দেখুন avn: github.com/wbyoung/avn
wbyoung

1
যতদূর আমি দেখতে পাই ভার্চুয়াল পরিবেশ নয়। এটি সিল বিশ্বব্যাপী ইনস্টল করা সমস্ত লাইব্রেরি কিন্তু এনপিএম শেয়ার করে pm
ইয়ানিক হামান

7

bxjx এর উত্তরটি ধারণাগতভাবে সঠিক। তবে, দয়া করে নোট করুন যে বান্ডেল কমান্ডটি আর কোনও ডিরেক্টরি নেয় না। এটি সর্বদা প্যাকেজগুলি node_modulesফোল্ডারে ফেলে দেয়, যাতে এনপিএম জানতে পারে কোথায় সেগুলি পরে পাওয়া যাবে (এবং ডাবল-ইনস্টল নির্ভরতা এড়াতে পারে)।

যে কোনও সমাধান সম্ভবত এনপিএম এবং নাভ "সিস্টেম-ওয়াইড" ইনস্টল করার সাথে জড়িত থাকবে (এটি আপনার PATH, যা কোনও ~জায়গায় থাকতে পারে ) তবে কেবল ভার্চুয়াল পরিবেশে আপনার নির্দিষ্ট নির্ভরতা ইনস্টল করা হবে ।

আমি গিথুব ইস্যুতে আরও ভালভাবে প্রতিক্রিয়া জানালাম ।

tl; dr: ব্যবহারের ক্ষেত্রেটি বৈধ এবং সহায়ক, এবং এটি বেশিরভাগ ক্ষেত্রে থাকা অবস্থায়, এটি যেমনটি হতে পারে তেমন পরিবেশিত হয় নি। আমাদের এটি নিশ্চিত হওয়া উচিত এবং এটি সঠিকভাবে করা উচিত।


গিটহাব ইস্যুটির আর উপস্থিতি নেই। একটি আপডেট লিঙ্ক আছে?
ড্রিজিসিল

4

আপনার সর্বদা বিশ্বব্যাপী নির্ভরতা ইনস্টল করার দরকার নেই। সাধারণত এটি সুপারিশ করা হয় কারণ এরপরে আপনি এনপিএম প্যাকেজ সরবরাহকারী কমান্ডগুলি ব্যবহার করতে পারেন তবে আপনি যদি স্থানীয়ভাবে এটি ( node_modulesডিরেক্টরিতে) ইনস্টল করেন তবে আপনি এই কমান্ডগুলিও ব্যবহার করতে পারেন, তারা কেবল node_modules/.bin/ডিরেক্টরিতে সজ্জিত করে , তাই আপনাকে টাইপ করতে হবে node_modules/.bin/<command>, যা বিরক্তিকর, তবে আপনি অবশ্যই আপনার PATHপরিবেশ পরিবর্তনশীলটিতে এই পথটি যুক্ত করতে পারেন :

export PATH=node_modules/.bin:$PATH

তারপরে আপনি কেবল টাইপ করতে পারেন <command>এবং এটি কাজ করে!

প্রকৃতপক্ষে একটি এনপিএম কমান্ড রয়েছে যা .binডিরেক্টরিতে একটি পরম পথ ফেরায় :

$ npm bin
/path/to/node_modules/.bin

আপনি যখন প্রকল্পের একটি উপ-ডিরেক্টরিতে থাকবেন তখনও এই কমান্ডটি কাজ করে, এটি তার node_modules/.binমূল ডিরেক্টরিগুলিতে এটি খুঁজে পাওয়া প্রথম ডিরেক্টরিটি ফিরিয়ে দেবে ।

ডিরেক্টরিটিতে .bashrcস্বয়ংক্রিয়ভাবে .bin/ডিরেক্টরি যুক্ত করতে আপনি নিজের নামটি যুক্ত করতে পারেন PATH:

alias nodebin='export PATH=$(npm bin):$PATH'

সুতরাং আপনি যখন কোনও প্রোজেক্টের একটি ডিরেক্টরিতে রয়েছেন যার মূলটিতে node_modules/ডিরেক্টরি রয়েছে, আপনি টাইপ করতে পারেন nodebinএবং তারপরে আপনি .bin/ডিরেক্টরিতে থাকা সমস্ত কমান্ড ব্যবহার করতে পারেন !



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