تعداد بازدید: 3290

npm ابزار مدیریت کتابخانه

npm که به آن Node.js package manager می گوییم یک ابزار مدیریت پکیج های javascript می باشد که به صورت پیش فرض با Node.js کار می کند. این نرم افزار یک command line interface دارد که با آن می توان پکیج مورد نظر را روی پروژه نصب کرد. این همان ابزاری است که در زمان نصب nodejs همراه با آن نصب می شود . معادل این ابزار همان composer در زبان PHP است.

به عبارت دیگر می توان گفت که با استفاده از npm می توان یک پروژه ساخت . پس از initialize یک پروژه یک فایل تحت عنوان هسته اصلی پروژه که حاوی اطلاعات اصلی پروژه از قبیل (نام ، توضیحات ، شماره نسخه ، نویسنده و …) و همچنین لیست پکیج هایی که برای استفاده از این پروژه باید داشته باشیم (نظیر وابستگی های محیط توسعه برای کسانی که قصد توسعه این پروژه را دارند – devDependencies – و وابستگی ها اصلی برای کار کردن این پروژه – dependencies )

JS Project Directory tree

یک پروژه که در آن از npm برای ابزار مدیریت پکیج استفاده شده است ساختار زیر را دارد :

node_modules/
src
dist
package.json
package-lock.json
  • node_modules : مسیر فایل های کتابخانه های نصب شده روی پروژه می باشد (مثلا فایل های bootstrap , font-awesome , jquery)
  • package.json : فایل تنظیمات npm که در آن لیست کتابخانه ها (پکیج ها) و سایر تنظیمات در آن می باشد.از این فایل تحت عنوان قلب پروژه (Heart of the Project) یاد می شود. اطلاعات پروژه و لیست پکیج ها در این فایل است.
  • package-lock.lock : یک فایل نظیر composer.lock در پی اچ پی که تغییرات ورژن ها را در package.json رصد می کند.
  • src : سورس اصلی ماژول ها پروژه و فایل های خام
  • dist : مسیر توزیع نهایی این پروژه یا distribution عملا از src دریافت ماژول های خام و کامپایل و بیلد در دایرکتوری dist

می توان از npm به عنوان ابزاری برای محیط توسعه استفاده کرد. به گونه ای که یک شناسنامه (package.json) در پروژه داشت و دیگر نیازی به node_modules نخواهد بود و هر زمان می توان از روی pacakge.json کتابخانه ها را از روی منبع نصب کرد.

می توان یک پکیج در npm ساخت و آن را در مخزن submit کرد و دیگران نیز آن را به عنوان کتابخانه روی پروژه خود نصب کنند. همان گونه که هر کتابخانه ای که نصب می کنید یک فایل package.json دارد.

Package.json

فایل package.json تنظیمات پروژه npm را دارد. این فایل دارای ساختاری مشابه زیر می باشد :

{
  "name": "mini-project-card",
  "version": "1.0.0",
  "description": "mini project working with development/production modes",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack build --config webpack.config.prod.js",
    "dev": "webpack build --config webpack.config.dev.js"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/a-sabagh/project.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@fontsource/skranji": "^4.5.10",
    "clean-webpack-plugin": "^4.0.0"
  },
  "devDependencies": {
    "webpack": "^5.75.0",
    "webpack-cli": "^4.10.0",
    "webpack-dev-server": "^4.11.1",
    "webpack-merge": "^5.8.0"
  }
}

برخی Property های مهم این فایل :

  • name : نام پکیج. دقت داشته باشید این نام همان slug است که قرار است در کتابخانه npmjs.com قرار بگیرد پس حتما نامی برای این پروژه انتخاب کنید که در این مخزن nmpjs.com وجود نداشته باشد . در غیر این صورت اگر این پروژه را در مخزن قرار بدهید و کتابخانه ای جانبی به عنوان dependency هم نام با این پروژه نصب کنید خطا خواهید داشت.
  • repository : اطلاعات مربوط به مخزن گیت این پکیج
  • dependencies : پکیج هایی که به عنوان پیش نیاز برای این پکیج باید نصب گردد.
  • devDependencies : پکیج ها یا همان ابزار های محیط توسعه است . این ابزار ها برای ابزار های دیگر نظیر Module Bundler ها کاربرد دارد.
  • scripts: لیست دستوراتی که به صورت alias قرار است در این شی قرار بدهیم. به صورتی که به جای این که دستور npx یا npm exec را اجرا کنند و بعد به صورت کامل دستور را اجرا کنند با npm run [ALIAS] بتوانند دستور مورد نظر را اجرا کنند.

npm init

می توان این فایل را با تنظیمات ساخت و npm install را زد و یا npm init را وارد کرد و اطلاعات بالا به صورت wizard وارد کرد . بوسیله دستور زیر می توان یک پکیج را initialize کرد :

npm init

همچنین می توان برای سرعت کار از دستور زیر استفاده کنید تا یک سری موارد پیش فرض را برای شما پر کند.

npm init -y

منظور از -y یعنی به تمامی مراحل wizard پاسخ yes می دهم و یک فایل package.json پیش فرض می سازیم و بعد تر به نصب پکیج ها و بقیه تنظیمات می پردازیم.

پس از اجرای دستور بالا یک سری اطلاعات در رابطه با پکیج از شما پرسیده می شود و در نهایت فایل package.json ساخته می شود. شما با افزودن --yes می توانید یک پکیج از روی اطلاعات پیش فرض بسازید (نام پکیج از روی فولدر مسیر جاری انتخاب می شود)

برای تنظیم اطلاعات پیش فرض برای پکیج (dependency , devDependency) از دستورات زیر می توان استفاده کرد :

npm config set init-author-name "Abolfazl Sabagh"
npm set init-licence "MIT"

npm install

برای نصب یک پکیج روی یک پروژه از دستور زیر استفاده می کنیم :

npm install <packageName>

برای اطلاعات بیشتر می توانید فرمان npm install help را بزنید تا نحوه نصب پکیج های مختلف از مخازن مختلف را مشاهده کنید(github , npmjs). پس هر ماژول به یک Repository از گیت هاب متصل است.

برای این که نسخه ای خاص از یک پکیج را نصب کنید لازم است تا به صورت فرمت زیر آن را وارد کنید:

npm install package@version_number

به طور مثال اگر لازم دارید تا نسخه ۴.۵.۰ بوتسترپ را نصب کنید کافیست دستور زیر را وارد کنید:

npm install bootstrap@4.5.0

فایل package-lock.json پس از نصب اولین پکیج ساخته می شود. وقتی پکیجی را با استفاده از فرمان بالا می سازید اطلاعات مربوط به پکیج در package.json ذخیره نمی شود. برای این که اطلاعات در package.json ذخیره گردد باید فرمان --save برای پکیج های اصلی و آپشن --save-dev را برای پکیج های توسعه پیاده سازی کنید.

درصورتی که بخواهیم یک پکیج را از حالت devDependency به حالت dependency در بیاوریم یا به عکس می توانیم از دستور جایگزین استفاده کنیم.

npm install babel-loader --save-dev

دستور بالا پکیج babel-loader را به devDependencies منتقل می کند.

npm uninstall

برای حذف یک پکیج دستور زیر را وارد کنید :

npm uninstall <packageName>

برای این که پکیج از فایل تنظیمات نیز حذف شود باید از فرمان --save برای پکیج های “dependency” و از --save-dev برای پکیج های “devDependency” استفاده کنید.

npm update

برای بروزرسانی پکیج ها بر اساس package.json می توان از دستور زیر استفاده کرد:

npm update

نصب و راه اندازی یک پروژه با npm

معمولا در زمان راه اندازی یک پروژه قرار است که ما فایل های کتابخانه ها در مسیر اصلی پروژه قرار ندهیم. به همین دلیل باید مسیر node_modules را در gitignore قرار بدهیم. پس از دریافت کامل پروژه از گیت برای نصب کلیه کتابخانه های لازم باید دستور زیر را اجرا کنیم:

npm install

همچنین برای نصب یک پکیج می توان مشخصات کامل آن را (slug به همراه ورژن) در package.json قرار بدهیم و در نهایت در پروژه دستور npm intall را اجرا کنیم.

مطالب مشابه

webpack javascript module bundler

Webpack Module Bundler Part 4

وب پک یک ابزار توسعه بخش Front End می باشد . یکی از مشکلاتی که در توسعه بخش Front End با آن مواجه هستیم کش کردن Assets...

webpack javascript module bundler

Webpack Module Bundler Part 3

Loader ها در وب پک برای توسعه عملیات بیلد برای پشتیبانی از انواع Assets می باشد . Loader ها هم دقیقا مثل پلاگین ها یک...

webpack javascript module bundler

Webpack Module Bundler Part 2

وب پک یک نرم افزار است که در قالب یک کتابخانه و یک ابزار توسعه برای ساخت سایر نرم افزار ها در با استفاده از node...

webpack javascript module bundler

Webpack Module Bundler

وب پک یک ابزار توسعه (Development Tool) از دسته Module Bundler ها است. وب پک امکان تجمیع و پردازش کردن Module های جاوا...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای npm ابزار مدیریت کتابخانه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *