এড়ানো হচ্ছে ../../../../..../.... .. ..
অ্যাপ্লিকেশনটিতে থাকা সমস্ত কিছুই সঠিকভাবে পাবলিক এনপিএমের সাথে সম্পর্কিত নয় এবং প্রাইভেট এনএমপি বা গিট রেপো স্থাপনের ওভারহেড এখনও অনেক ক্ষেত্রেই বড় নয়। ../../../../../../../
আপেক্ষিক পাথের সমস্যা এড়ানোর জন্য কয়েকটি পন্থা এখানে দেওয়া হল
।
node_modules
লোকেরা কখনও কখনও অ্যাপ্লিকেশন-নির্দিষ্ট মডিউলগুলিকে নোড_মডিউলগুলিতে স্থাপন করতে আপত্তি জানায় কারণ এনপিএম থেকে তৃতীয় পক্ষের মডিউলগুলিও পরীক্ষা না করে আপনার অভ্যন্তরীণ মডিউলগুলি কীভাবে চেক করা যায় তা স্পষ্ট নয়।
উত্তরটা বেশ সাধারন! আপনার যদি এমন কোনও .gitignore
ফাইল থাকে যা উপেক্ষা করে node_modules
:
node_modules
!
আপনার অভ্যন্তরীণ অ্যাপ্লিকেশন মডিউলগুলির জন্য আপনি কেবল একটি ব্যতিক্রম যুক্ত করতে পারেন :
node_modules/*
!node_modules/foo
!node_modules/bar
দয়া করে মনে রাখবেন যে পিতা-মাতা ইতিমধ্যে উপেক্ষা করা থাকলে আপনি একটি উপ-ডিরেক্টরিটি স্বাক্ষর করতে পারবেন না । সুতরাং উপেক্ষা পরিবর্তে node_modules
, আপনি প্রতি ডিরেক্টরির উপেক্ষা করা আছে ভিতরে node_modules
সঙ্গে
node_modules/*
কৌতুক, এবং তারপর আপনি আপনার ব্যতিক্রম যোগ করতে পারেন।
এখন আপনার আবেদনের যে কোনও জায়গায় আপনি খুব বড় এবং ভঙ্গুর আপেক্ষিক পাথ require('foo')
বা require('bar')
ছাড়াই সক্ষম হবেন ।
আপনার যদি অনেকগুলি মডিউল থাকে এবং এগুলি এনএমপি দ্বারা ইনস্টল করা তৃতীয় পক্ষের মডিউলগুলি থেকে আরও আলাদা রাখতে চান তবে আপনি সেগুলি কেবল একটি ডিরেক্টরিতে রাখতে পারেন node_modules
যেমন node_modules/app
:
node_modules/app/foo
node_modules/app/bar
এখন আপনি
আপনার অ্যাপ্লিকেশনটিতে require('app/foo')
বা require('app/bar')
যে কোনও জায়গা থেকে সক্ষম হবেন ।
আপনার মধ্যে .gitignore
, কেবল এর জন্য একটি ব্যতিক্রম যুক্ত করুন node_modules/app
:
node_modules/*
!node_modules/app
যদি আপনার অ্যাপ্লিকেশনটির প্যাকেজ.জসনে কনফিগার হয়েছে, আপনার নিজের উপাদান node_modules/foo
বা node_modules/app/foo
ডিরেক্টরিতে নিজস্ব রূপান্তর ক্ষেত্র সহ একটি পৃথক প্যাকেজ.জসন তৈরি করতে হবে কারণ রূপান্তরগুলি মডিউল সীমানা জুড়ে প্রযোজ্য নয়। এটি আপনার অ্যাপ্লিকেশনটিতে কনফিগারেশন পরিবর্তনের বিরুদ্ধে আপনার মডিউলগুলি আরও শক্তিশালী করে তুলবে এবং আপনার আবেদনের বাইরে প্যাকেজগুলি স্বাধীনভাবে পুনরায় ব্যবহার করা সহজ হবে।
সিমবলিক লিঙ্ক
আরেকটি কুশলী কৌতুক যদি আপনি একটি অ্যাপ্লিকেশন যেখানে আপনি symlinks করতে পারেন এবং সমর্থন উইন্ডোজ প্রয়োজন হবে না কাজ করছি একটি সিমবলিক লিঙ্ক হয় lib/
বা app/
মধ্যে ফোল্ডারের node_modules
। প্রকল্পের মূল থেকে, করুন:
ln -s ../lib node_modules/app
এবং এখন আপনার প্রকল্পের যে কোন জায়গা থেকে আপনি ফাইল প্রয়োজন করতে সক্ষম হবেন lib/
করে require('app/foo.js')
পেতে lib/foo.js
।
কাস্টম পাথ
আপনি হয়ত কিছু স্থানে $NODE_PATH
পরিবেশের পরিবর্তনশীল ব্যবহার বা opts.paths
নোডের জন্য ডিরেক্টরি যুক্ত করতে এবং মডিউলগুলি সন্ধান করার জন্য ব্রাউজারফাইয়ের কথা বলতে পারেন।
অন্যান্য প্ল্যাটফর্মগুলির বিপরীতে, ডিরেক্টরিটির $NODE_PATH
কার্যকর ব্যবহারের তুলনায় নোডের সাথে শথ-স্টাইলের পাথ ডিরেক্টরিগুলি ব্যবহার করা সুবিধাজনক নয় node_modules
।
এটি কারণ আপনার অ্যাপ্লিকেশনটি রানটাইম এনভায়রনমেন্ট কনফিগারেশনের সাথে আরও দৃ tight়তার সাথে মিলিত হয়েছে তাই আরও চলমান অংশ রয়েছে এবং আপনার পরিবেশটি সঠিকভাবে সেটআপ হওয়ার সময় আপনার অ্যাপ্লিকেশনটি কাজ করবে।
নোড এবং উভয় সমর্থন ব্রাউজ করুন তবে এর ব্যবহারকে নিরুৎসাহিত করুন
$NODE_PATH
।