هر پکیجی که بعنوان نیازمندی پروژه نصب میشود، از نظر محدوده(scope) نصب و استفاده دو حالت میتواند داشته باشد:
· local باشد: یعنی تنها در دایرکتوری پروژه نصب شود. (که البته حالت پیشفرض هم همین است. برای این که ببینیم چه پکیجهایی در دایرکتوری فعلیمان نصب شدهاند، میتوانیم دستور npm list
را اجرا کنیم.) این نوع پکیجها در دایرکتوری node_modules پروژه ذخیره میشوند.
· global باشد: یعنی در سیستم نصب شود و همه پروژهها در هر مسیری از سیستم که هستند، بتوانند از آن استفاده کنند. برای نصب یک پکیج بصورت global لازم است گزینه g-
را به npm install
مان بدهیم. یادمان باشد که برای این کار، باید دسترسی sudo داشته باشیم. همینطور خوب است بدانیم که پکیجهای گلوبال در سیستمعاملهای مختلف، در آدرسهای زیر ذخیره میشوند:
در سیستمعاملهای unix based (مثلاً mac و linux) در آدرس:
/usr/local/lib/node
و یا آدرس
/usr/local/lib/node_modules
و در سیستمعامل ویندوز در آدرس:
%USERPROFILE%\AppData\Roaming\npm\node_modules
از آنجایی که ممکن است پروژههای مختلف روی سیستم، از ورژنهای مختلف یک پکیج استفاده کنند، در کل بهتر است پکیجها را بصورت لوکال نصب کنیم تا مشکلی از این بابت ایجاد نشود. در غیر اینصورت برای مدیریت تداخل نسخه ها، نیاز به ابزار nvm (node version manager) خواهیم داشت. (در این آدرس می توانید درباره nvm بیشتر بخوانید: https://www.keycdn.com/blog/node-version-manager)
در مقابل بهتر است پکیج هایی را که external command در اختیار قرار میدهند بصورت global نصب کنیم، مثل CLI ها. مثلاً بهتر است چنین پکیجهایی بصورت گلوبال نصب شوند:
npm، create-react-app، @vue/cli، grunt-cli، mocha، react-native-cli، gatsby-cli، forever، nodemon و ...
در قسمت بعد، با انواع نیازمندی ها در npm آشنا خواهیم شد...