bower
এবং এর মধ্যে মৌলিক পার্থক্য কী npm
? সহজ এবং সরল কিছু চাই। আমি আমার কয়েকজন সহকর্মীকে তাদের প্রকল্পগুলিতে bower
এবং npm
বিনিময়ভাবে দেখেছি ।
bower
এবং এর মধ্যে মৌলিক পার্থক্য কী npm
? সহজ এবং সরল কিছু চাই। আমি আমার কয়েকজন সহকর্মীকে তাদের প্রকল্পগুলিতে bower
এবং npm
বিনিময়ভাবে দেখেছি ।
উত্তর:
সমস্ত প্যাকেজ পরিচালকদের অনেক ডাউনসাইড রয়েছে। আপনাকে কেবল বাছাই করতে হবে যা দিয়ে আপনি বেঁচে থাকতে পারেন।
এনপিএম নোড.জেএস মডিউল পরিচালনা শুরু করেছে (এজন্য প্যাকেজগুলি node_modules
ডিফল্টরূপে প্রবেশ করে) তবে ব্রাউজারফি বা ওয়েবপ্যাকের সাথে মিলিত হলে এটি সামনের দিকেও কাজ করে ।
শক্তিশালী সম্পূর্ণ ফ্রন্ট- এন্ডের জন্য তৈরি করা হয় এবং এটি মনে রেখে অনুকূলিত করা হয়।
এনপিএম সাধারণ উদ্দেশ্য জাভাস্ক্রিপ্ট সহ (যেমন country-data
দেশের তথ্যের sorts
জন্য বা সামনের প্রান্তে বা পিছনের প্রান্তে ব্যবহারযোগ্য এমন ফাংশনগুলি বাছাই করার জন্য) বোরারের চেয়ে অনেক বড় ।
বোরের প্যাকেজগুলির পরিমাণ অনেক কম।
বুভারের মধ্যে শৈলী ইত্যাদি অন্তর্ভুক্ত রয়েছে B
এনপিএম জাভাস্ক্রিপ্ট উপর দৃষ্টি নিবদ্ধ করা হয়। শৈলী পারেন আলাদাভাবে ডাউনলোড বা ভালো কিছু প্রয়োজনীয় হয় npm-sass
বা sass-npm
।
সবচেয়ে বড় পার্থক্যটি হল এনপিএম নেস্টেড নির্ভরতা করে (তবে ডিফল্টরূপে সমতল) যখন বোওয়ারের জন্য ফ্ল্যাট নির্ভরতা গাছের প্রয়োজন হয় (ব্যবহারকারীর উপর নির্ভরতার রেজোলিউশনের ভার চাপায়) ।
নেস্টেড নির্ভরতা গাছের অর্থ আপনার নির্ভরতাগুলির নিজস্ব নির্ভরতা থাকতে পারে যা তাদের নিজস্ব থাকতে পারে can এটি দুটি মডিউলগুলির জন্য একই নির্ভরতার বিভিন্ন সংস্করণ প্রয়োজন এবং এখনও কাজ করে। দ্রষ্টব্য এনপিএম ভি 3-র পর থেকে, নির্ভরতা গাছটি ফ্ল্যাট দ্বারা ডিফল্টরূপে হবে (স্থান বাঁচাতে) এবং কেবল যেখানে নীড় প্রয়োজন সেখানে উদাহরণস্বরূপ, যদি দুটি নির্ভরশীলতার নিজস্ব সংস্করণ বোঝার দরকার হয়।
কিছু প্রকল্প উভয়ের ব্যবহার হ'ল তারা ফ্রন্ট-এন্ড প্যাকেজগুলির জন্য বোভার এবং ইয়োমন, গ্রান্ট, গুল্প, জেএসহিন্ট, কফি স্ক্রিপ্ট ইত্যাদির মতো বিকাশকারী সরঞ্জামগুলির জন্য এনপিএম ব্যবহার করে that
এই উত্তরটি সিন্ড্রে সরহসের জবাবের সংযোজন। এনপিএম এবং বওয়ারের মধ্যে প্রধান পার্থক্যটি তারা পুনরাবৃত্ত নির্ভরতাগুলির সাথে আচরণ করে। নোট করুন যে এগুলি একক প্রকল্পে একসাথে ব্যবহার করা যেতে পারে।
উপর npm প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী : (6 থেকে archive.org লিংক সেপ্টেম্বর 2015)
নীড় নির্ভরতা ছাড়াই নির্ভরতা দ্বন্দ্ব এড়ানো অনেক কঠিন। এটি এনপিএম যেভাবে কাজ করে তার জন্য এটি মৌলিক এবং এটি একটি অত্যন্ত সফল পদ্ধতির হিসাবে প্রমাণিত হয়েছে।
উপর আবাস হোমপেজ:
সামনের-শেষের জন্য বওয়ারটি অনুকূলিত। বোর একটি ফ্ল্যাট নির্ভরতা গাছ ব্যবহার করে, প্রতিটি প্যাকেজের জন্য কেবল একটি সংস্করণ প্রয়োজন, পৃষ্ঠা লোড সর্বনিম্ন হ্রাস করে।
সংক্ষেপে, এনপিএম স্থিরতার লক্ষ্যে। বোরের লক্ষ্য ন্যূনতম সংস্থান লোড। আপনি যদি নির্ভরতা কাঠামো আঁকেন তবে আপনি এটি দেখতে পাবেন:
npm:
project root
[node_modules] // default directory for dependencies
-> dependency A
-> dependency B
[node_modules]
-> dependency A
-> dependency C
[node_modules]
-> dependency B
[node_modules]
-> dependency A
-> dependency D
আপনি দেখতে পাচ্ছেন এটি পুনরাবৃত্তিভাবে কিছু নির্ভরতা ইনস্টল করে। নির্ভরতা এ এর তিনটি ইনস্টল ইনস্ট্যান্স রয়েছে!
আবাস:
project root
[bower_components] // default directory for dependencies
-> dependency A
-> dependency B // needs A
-> dependency C // needs B and D
-> dependency D
এখানে আপনি দেখুন যে সমস্ত অনন্য নির্ভরতা একই স্তরের হয় on
তো, এনপিএম ব্যবহার করে বিরক্ত করবেন কেন?
হয়তো নির্ভরতা বি তাই এটি যাহাই হউক না কেন কাজ করবে, কিন্তু আবাস আপনি একটি দেব নির্ভরতা নির্ভরশীলতার চেয়ে সি npm এই নির্ভরতা উভয় সংস্করণই ইনস্টল একটি ভিন্ন সংস্করণ প্রয়োজন দ্বন্দ্ব কারণ এটি অনুলিপি পছন্দ করেন না (কারণ একটি ওয়েবপেজ একই সংস্থান লোড হয় খুব অদক্ষ এবং ব্যয়বহুল, এছাড়াও এটি কিছু গুরুতর ত্রুটি দিতে পারে)। আপনি কোন সংস্করণ ইনস্টল করতে চান তা আপনাকে ম্যানুয়ালি চয়ন করতে হবে। এর ফলে প্রভাবগুলির মধ্যে একটি ভেঙে ফেলতে পারে এটি প্রভাব ফেলতে পারে তবে এটি এমন কোনও বিষয় যা আপনাকে যাইহোক ঠিক করতে হবে।
সুতরাং, সাধারণ ব্যবহারটি হ'ল প্যাকেজগুলি যা আপনি আপনার ওয়েবপৃষ্ঠাগুলিতে প্রকাশ করতে চান (যেমন রানটাইম , যেখানে আপনি সদৃশ এড়াতে চান), এবং অন্যান্য স্টাফের জন্য এনপিএম ব্যবহার করুন, যেমন পরীক্ষা, বিল্ডিং, অনুকূলকরণ, চেকিং ইত্যাদি (যেমন উন্নয়নের সময় , যেখানে সদৃশ কম উদ্বেগের বিষয়)।
এনপিএম 3 এর জন্য আপডেট করুন:
এনপিএম 3 এখনও বওয়ারের সাথে তুলনা করে বিভিন্ন জিনিস করে। এটি বিশ্বব্যাপী নির্ভরতা ইনস্টল করবে, তবে এটির প্রথম সংস্করণটির মুখোমুখি। অন্যান্য সংস্করণগুলি গাছে ইনস্টল করা আছে (প্যারেন্ট মডিউল, তারপরে নোড_মডিউল)।
আরও তথ্যের জন্য, আমি এনপিএম 3 এর ডক্সটি পড়ার পরামর্শ দিচ্ছি
npm
বা সঙ্গে ন্যূনতম সম্পদ লোড bower
।
টিএল; ডিআর: প্রতিদিনের ব্যবহারের সবচেয়ে বড় পার্থক্য নেস্টেড নির্ভরতা নয় ... এটি মডিউল এবং গ্লোবালের মধ্যে পার্থক্য।
আমি মনে করি পূর্ববর্তী পোস্টারগুলি কিছু প্রাথমিক পার্থক্য ভালভাবে আবৃত করেছে। (এনপিএমের নেস্টেড নির্ভরতাগুলির ব্যবহার বৃহত্তর, জটিল অ্যাপ্লিকেশনগুলি পরিচালনা করতে প্রকৃতপক্ষে খুব সহায়ক, যদিও আমি মনে করি না এটি সবচেয়ে গুরুত্বপূর্ণ পার্থক্য))
তবে আমি আশ্চর্য হয়েছি যে কেউই বোভার এবং এনপিএমের মধ্যে একটি অন্যতম মৌলিক পার্থক্য স্পষ্টভাবে ব্যাখ্যা করতে পারেনি। যদি আপনি উপরের উত্তরগুলি পড়ে থাকেন তবে আপনি এনপিএমের প্রসঙ্গে প্রায়ই 'মডিউল' শব্দটি ব্যবহার করতে পারেন। তবে এটি আকস্মিকভাবে উল্লেখ করা হয়েছে, যেন এটি কেবল একটি বাক্য গঠন পার্থক্য হতে পারে।
তবে মডিউল বনাম গ্লোবালগুলির এই পার্থক্য (বা মডিউল বনাম 'স্ক্রিপ্টস') সম্ভবত বোর এবং এনপিএমের মধ্যে সবচেয়ে গুরুত্বপূর্ণ পার্থক্য। মডিউলগুলিতে সমস্ত কিছু রাখার এনপিএম পদ্ধতির জন্য আপনাকে ব্রাউজারের জন্য জাভাস্ক্রিপ্ট লেখার উপায়টি বদলাতে হবে, সম্ভবত আরও ভাল for
<script>
ট্যাগগুলির মতোমূলে, বোভার প্লেইন-পুরানো স্ক্রিপ্ট ফাইলগুলি লোড করার বিষয়ে। এই স্ক্রিপ্ট ফাইলগুলিতে যা কিছু থাকুক না কেন, বোভার সেগুলি লোড করবে। মূলত এর অর্থ হ'ল বাওয়ার ঠিক আপনার HTML <script>
এর সাদামাটা-পুস্তকের সমস্ত স্ক্রিপ্টগুলি সমেতের মতো including<head>
সুতরাং, একই বেসিক পদ্ধতির জন্য আপনি অভ্যস্ত হন তবে আপনি কিছু দুর্দান্ত অটোমেশন সুবিধা পান:
bower install
স্থানীয়ভাবে তাদের প্রয়োজন অনুযায়ী দ্রুত এবং তাত্ক্ষণিকভাবে তা করতে পারেন।bower.json
সেগুলি আপনার জন্যও ডাউনলোড করা হবে।তবে এর বাইরে, বোভার কীভাবে জাভাস্ক্রিপ্ট লিখি তা পরিবর্তন করে না । বোভার দ্বারা লোড করা ফাইলগুলির মধ্যে কী যায় সে সম্পর্কে কিছুই করার দরকার নেই। বিশেষত, এর অর্থ হ'ল বোভার দ্বারা লোড হওয়া স্ক্রিপ্টগুলিতে সরবরাহ করা সংস্থানগুলি (সাধারণত, তবে সর্বদা নয়) এখনও গ্লোবাল ভেরিয়েবল হিসাবে সংজ্ঞায়িত হবে , ব্রাউজার সম্পাদন প্রসঙ্গে যে কোনও জায়গা থেকে উপলব্ধ।
নোড জমির সমস্ত কোড (এবং এইভাবে এনপিএমের মাধ্যমে লোডযুক্ত সমস্ত কোড) মডিউল হিসাবে কাঠামোগত (বিশেষত, সাধারণ জেএস মডিউল ফর্ম্যাটটির প্রয়োগ হিসাবে , বা এখন, ES6 মডিউল হিসাবে)। সুতরাং, যদি আপনি ব্রাউজারের পাশের নির্ভরতাগুলি হ্যান্ডেল করতে (ব্রাউজারফি বা অন্য কিছু যা একই কাজ করে) পরিচালনা করতে NPM ব্যবহার করেন, আপনি নোডের মতোই আপনার কোডটি গঠন করবেন।
আমার চেয়ে স্মার্ট লোকেরা 'কেন মডিউলগুলি?' প্রশ্নটি মোকাবেলা করেছে, তবে এখানে একটি ক্যাপসুলের সংক্ষিপ্তসার রয়েছে:
window.variable
। এক দুর্ঘটনা এখনও ঘটতে বরাদ্দ করা হয় থাকে this.variable
, বুঝতে না যে this
আসলে window
বর্তমান প্রেক্ষাপটে।)আমার কাছে, ফ্রন্ট-এন্ড কোডের জন্য মডিউলগুলির ব্যবহার নীচে নেমে আসে: অনেক সঙ্কুচিত প্রসঙ্গে কাজ করা যা সম্পর্কে বিতর্ক করা এবং পরীক্ষা করা সহজ এবং কী ঘটছে সে সম্পর্কে আরও দৃty়তা।
কমনজেএস / নোড মডিউল সিনট্যাক্স কীভাবে ব্যবহার করতে হয় তা শিখতে প্রায় 30 সেকেন্ড সময় লাগে। প্রদত্ত জেএস ফাইলের ভিতরে, যা মডিউল হতে চলেছে, আপনি প্রথমে যে কোনও বাহ্যিক নির্ভরতা ব্যবহার করতে চান তা ঘোষণা করুন, এর মতো:
var React = require('react');
ফাইল / মডিউলটির অভ্যন্তরে, আপনি সাধারণত যা কিছু করেন তা করেন এবং এমন কিছু অবজেক্ট বা ফাংশন তৈরি করেন যা আপনি বাইরের ব্যবহারকারীদের কাছে প্রকাশ করতে চাইবেন, সম্ভবত এটি কল করে myModule
।
একটি ফাইলের শেষে, আপনি বিশ্বের সাথে যা কিছু ভাগ করতে চান তা রপ্তানি করুন:
module.exports = myModule;
তারপরে, ব্রাউজারে একটি কমনজেএস-ভিত্তিক ওয়ার্কফ্লো ব্যবহার করতে, আপনি সেই সমস্ত স্বতন্ত্র মডিউল ফাইলগুলি দখল করতে, রানটাইমের সময় তাদের বিষয়বস্তুগুলিকে আবদ্ধ করতে এবং প্রয়োজনীয়ভাবে একে অপরকে ইনজেকশনের জন্য ব্রাউজারফাইয়ের মতো সরঞ্জামগুলি ব্যবহার করবেন।
এবং, যেহেতু ES6 মডিউলগুলি (আপনি সম্ভবত বাবেল বা অনুরূপের সাথে ES5 এ স্থানান্তরিত হবেন) ব্যাপকভাবে গ্রহণযোগ্যতা লাভ করছে এবং ব্রাউজারে বা নোড 4.0.০ এ উভয়ই কাজ করে, সুতরাং আমাদের সেগুলির একটি ভাল ওভারভিউ উল্লেখ করা উচিত ।
এই ডেকের মডিউলগুলির সাথে কাজ করার জন্য নিদর্শনগুলি সম্পর্কে আরও ।
সম্পাদনা (ফেব্রুয়ারী 2017): ফেসবুকের সুতা আজকাল এনপিএমের জন্য অত্যন্ত গুরুত্বপূর্ণ সম্ভাব্য প্রতিস্থাপন / পরিপূরক: দ্রুত, নির্বিচারক, অফলাইন প্যাকেজ-পরিচালনা যা এনপিএম আপনাকে দেয় তার ভিত্তিতে তৈরি করে। যে কোনও জেএস প্রকল্পের জন্য এটি নজর রাখা মূল্যবান, বিশেষত যেহেতু এটি সহজেই / আউট আউট করা যায়।
সম্পাদনা করুন (মে 2019) "আবাস পরিশেষে হয়েছে অবচিত । গল্প শেষ।" (এইচ / টি: পিথির সংক্ষিপ্তসার জন্য নীচে @ ড্যানডাসক্লেস্কু।
এবং, সুতা এখনও সক্রিয় থাকাকালীন , ইয়ার্নের কিছু মূল বৈশিষ্ট্য গ্রহণ করার পরে এটির জন্য প্রচুর গতিবেগ আবার এনএমপিতে ফিরে যায়।
বোর অবশেষে হ্রাস করা হয়েছে । গল্পের শেষে.
স্পটিফায় জাভাস্ক্রিপ্ট বিকাশকারী ম্যাটিয়াস পেটার জোহানসন থেকে :
প্রায় সব ক্ষেত্রেই, ব্রাউভারফি এবং এনপিএম বোভারের উপরে ব্যবহার করা আরও উপযুক্ত। এটি কেবল সামনের দিকের অ্যাপ্লিকেশনগুলির জন্য বাওয়ারের চেয়ে ভাল প্যাকেজিং সমাধান। স্পটিফায়, আমরা পুরো ওয়েব মডিউলগুলি (এইচটিএমএল, সিএসএস, জেএস) প্যাকেজ করতে এনপিএম ব্যবহার করি এবং এটি খুব ভালভাবে কাজ করে।
বোভার নিজেকে ওয়েবের প্যাকেজ ম্যানেজার হিসাবে ব্র্যান্ড করে। এটি সত্য হলে এটি দুর্দান্ত হত - একটি প্যাকেজ ম্যানেজার যা ফ্রন্ট-এন্ড বিকাশকারী হিসাবে আমার জীবনকে আরও ভাল করে তোলে। সমস্যাটি হ'ল বাওয়ারটি উদ্দেশ্যটির জন্য কোনও বিশেষ সরঞ্জামাদি সরবরাহ করে না। এটি এমন কোনও সরঞ্জাম সরঞ্জাম সরবরাহ করে যা আমি জানি যে সেই এনপিএমটি করে না এবং বিশেষত ফ্রন্ট-এন্ড বিকাশকারীদের জন্য বিশেষভাবে কার্যকর এমন কোনওটিই নয়। কোনও ফ্রন্ট-এন্ড বিকাশকারীকে এনপিপি-র উপরে বাভার ব্যবহার করার পক্ষে কোনও সুবিধা নেই।
আমাদের বোরই ব্যবহার বন্ধ করা উচিত এবং এনপিএমের চারপাশে একীকরণ করা উচিত। ধন্যবাদ, যা ঘটছে তা হচ্ছে :
ব্রাউজরিফাই বা ওয়েবপ্যাকের সাহায্যে আপনার সমস্ত মডিউলগুলি বড় বড় ফর্মযুক্ত ফাইলগুলিতে একত্রিত করা অত্যন্ত সহজ হয়ে যায়, যা কার্য সম্পাদনের জন্য, বিশেষত মোবাইল ডিভাইসগুলির জন্য দুর্দান্ত। বাওয়ারের সাথে তেমন নয়, একই প্রভাব পেতে আরও উল্লেখযোগ্য শ্রম প্রয়োজন।
এনপিএম আপনাকে একসাথে মডিউলগুলির একাধিক সংস্করণ ব্যবহার করার ক্ষমতাও দেয়। আপনি যদি খুব বেশি অ্যাপ্লিকেশন বিকাশ না করে থাকেন তবে এটি প্রথমে আপনাকে খারাপ জিনিস হিসাবে আঘাত করতে পারে, তবে একবার আপনি নির্ভরতা জাহান্নামের কয়েক দফায় পার হয়ে গেলে বুঝতে পারবেন যে একটি মডিউলের একাধিক সংস্করণ রাখার ক্ষমতা থাকা একটি সুন্দর রঙ দুর্দান্ত বৈশিষ্ট্য। লক্ষ্য করুন npm একটি খুব সুবিধাজনক অন্তর্ভুক্ত dedupe টুল স্বয়ংক্রিয়ভাবে আপনি শুধুমাত্র একটি মডিউল দুটি সংস্করণ ব্যবহার আপনি আসলে যদি নিশ্চিত করে তোলে আছে করতে - দুই উভয় মডিউল যদি পারেন একটি মডিউল একই সংস্করণ ব্যবহার, তারা হবে। তবে তারা যদি না পারে তবে আপনার খুব সুবিধাজনক।
(নোট করুন যে ওয়েবপ্যাক এবং রোলআপ ব্যাপকভাবে আগস্ট ২০১ of সালের হিসাবে ব্রাউজরিফির চেয়ে ভাল হিসাবে বিবেচিত হয়))
বোর মডিউলগুলির একটি একক সংস্করণ বজায় রাখে, এটি কেবল আপনাকে আপনার জন্য সঠিক / সেরাটি নির্বাচন করতে সহায়তা করার চেষ্টা করে।
জাভাস্ক্রিপ্ট নির্ভরতা পরিচালনা: এনপিএম বনাম বোরো বনাম ভোলো?
নোড মডিউলগুলির জন্য এনপিএম আরও ভাল কারণ একটি মডিউল সিস্টেম রয়েছে এবং আপনি স্থানীয়ভাবে কাজ করছেন। ব্রওয়ার ব্রাউজারের পক্ষে ভাল কারণ বর্তমানে কেবলমাত্র বিশ্বব্যাপী সুযোগ রয়েছে এবং আপনি যে সংস্করণটি নিয়ে কাজ করেন সে সম্পর্কে আপনি খুব নির্বাচনী হতে চান।
আমার দলটি টাওয়ার থেকে দূরে সরে গেছে এবং এনপিএমে স্থানান্তরিত হয়েছে কারণ:
আরও তথ্যের জন্য দেখুন "কেন আমার দল বোরের পরিবর্তে এনপিএম ব্যবহার করে" ।
Http://ng-learn.org/2013/11/Bower-vs-npm/ থেকে এই দরকারী ব্যাখ্যাটি পেয়েছি
একদিকে নোড.জেএস এনভায়রনমেন্টে ব্যবহৃত মডিউল বা নোড.জেস যেমন কর্মা, লিঙ্ক, মিনিফায়ার ব্যবহার করে নির্মিত উন্নয়ন সরঞ্জামগুলি ইনস্টল করতে এনপিএম তৈরি করা হয়েছিল। এনপিএম কোনও প্রকল্পে স্থানীয়ভাবে মডিউলগুলি ইনস্টল করতে পারে (নোড_মডিউলগুলিতে ডিফল্টরূপে) বা একাধিক প্রকল্পের দ্বারা ব্যবহৃত বিশ্বব্যাপী। বড় প্রকল্পগুলিতে নির্ভরতা নির্দিষ্ট করার উপায় হ'ল প্যাকেজ.জসন নামে একটি ফাইল তৈরি করা যার মধ্যে নির্ভরতার তালিকা থাকে। আপনি এনপিএম ইনস্টল চালনা করার সময় সেই তালিকাটি এনপিএম দ্বারা স্বীকৃত হয়, যা পরে আপনার জন্য ডাউনলোড করে ইনস্টল করে।
অন্যদিকে আপনার সীমানা নির্ভরতা পরিচালনা করতে বোর তৈরি করা হয়েছিল। JQuery, AngularJS, আন্ডারস্কোর ইত্যাদির মতো লাইব্রেরিগুলি এনপিএম এর অনুরূপ একটি ফাইল রয়েছে যাতে আপনি bower.json নামক নির্ভরতার তালিকা নির্দিষ্ট করতে পারেন। এক্ষেত্রে আপনার সম্মুখভাগ নির্ভরতাগুলি চালিত বোভার ইনস্টল দ্বারা ইনস্টল করা হয় যা ডিফল্টরূপে সেগুলি ইনস্টল করে বোভার_কম্পোন্টস নামে একটি ফোল্ডারে।
যেমন আপনি দেখতে পাচ্ছেন, যদিও তারা একই ধরণের কাজ সম্পাদন করে তারা খুব আলাদা লাইব্রেরির সেটকে লক্ষ্য করে।
npm dedupe
কিছুটা পুরানো। দেখুন Mattias এর উত্তর ।
নোড.জেএস নিয়ে কাজ করা অনেক লোকের জন্য, ধনুকের একটি বড় সুবিধা হ'ল জাভাস্ক্রিপ্ট নয় এমন নির্ভরতা পরিচালনা করা। যদি তারা জাভাস্ক্রিপ্টের সাথে সংকলিত ভাষাগুলি নিয়ে কাজ করে থাকে তবে এনপিএম তাদের কিছু নির্ভরতা পরিচালনা করতে ব্যবহার করা যেতে পারে। তবে, তাদের সমস্ত নির্ভরতা নোড.জেএস মডিউল হতে চলেছে না। জাভাস্ক্রিপ্টে সংকলনকারীদের মধ্যে কিছুগুলির কাছে অদ্ভুত উত্স ভাষা নির্দিষ্ট ম্যাঙ্গেলিং থাকতে পারে যা ব্যবহারকারীরা যখন সোর্স কোডের প্রত্যাশা করছেন তখন জাভাস্ক্রিপ্টে একটি অযৌক্তিক বিকল্পটি সংকলিত করে তোলে them
এনপিএম প্যাকেজের সমস্ত কিছুই ব্যবহারকারীর মুখোমুখি জাভাস্ক্রিপ্ট হওয়ার দরকার নেই, তবে এনপিএম গ্রন্থাগার প্যাকেজগুলির জন্য অন্তত এর কয়েকটি হওয়া উচিত।