Module 3: Understanding npm & Project Setup


1. npm (Node Package Manager) යනු කුමක්ද? 📦

ඔබ Node.js install කරන විට, ඒ සමඟම **npm** නමැති ඉතා වැදගත් මෙවලමක්ද install වන බව අපි පෙර පාඩමේදී ඉගෙන ගත්තා. **npm** යනු ලොව විශාලතම මෘදුකාංග ලේඛනාගාරයයි (software registry). සරලවම කිවහොත්, එය JavaScript වැඩසටහන්කරුවන් විසින් ලියන ලද, නැවත නැවතත් භාවිතා කළ හැකි කේත කොටස් (code packages) මිලියන ගණනක් අඩංගු දැවැන්ත පුස්තකාලයක් වැනිය.

උදාහරණයක් ලෙස, ඔබට ඔබේ application එකේදී তারিখ සහ වෙලාවන් සමඟ වැඩ කිරීමට අවශ්‍ය නම්, ඒ සඳහා මුල සිට code ලියනවා වෙනුවට, ඒ සඳහාම නිර්මාණය කරන ලද moment.js හෝ date-fns වැනි package එකක් npm හරහා install කරගත හැකිය. මෙය අපගේ කාලය ඉතිරි කරන අතර, වඩාත් ස්ථාවර සහ පරීක්ෂා කරන ලද කේත භාවිතා කිරීමට අවස්ථාව ලබා දේ.

npm හි ප්‍රධාන කොටස් දෙකකි:

  1. **The Command-Line Interface (CLI):** අපේ terminal එකේ npm command එක භාවිතයෙන් packages install කිරීමට, update කිරීමට සහ කළමනාකරණය කිරීමට භාවිතා කරන මෙවලම.
  2. **The npm Registry:** packages මිලියන ගණනක් ගබඩා කර ඇති online database එක (npmjs.com).

2. Node.js Project එකක් ආරම්භ කිරීම (`npm init`)

අපි Node.js project එකක් ආරම්භ කරන විට, එහි තොරතුරු සහ ඊට අදාළ packages කළමනාකරණය කිරීමට package.json නමින් file එකක් සාදාගත යුතුය. මෙම file එක project එකේ හඳුනාගැනීමේ පත (ID card) වැනිය. එය npm init command එක මගින් ඉතා පහසුවෙන් සාදාගත හැක.

පියවරෙන් පියවර උපදෙස්:

  1. පළමුව, ඔබේ project එක සඳහා අලුත් folder එකක් සාදාගන්න. (උදා: `my-project`).
  2. Terminal එක open කර, එම folder එකට පිවිසෙන්න:
    cd path/to/my-project
  3. දැන්, පහත command එක run කරන්න:
npm init

මෙම command එක run කළ පසු, npm ඔබෙන් project එක පිළිබඳ ප්‍රශ්න කිහිපයක් අසනු ඇත. ඔබට enter යතුර එබීමෙන් default අගයන් භාරගත හැකිය, නැතහොත් ඔබේම අගයන් ඇතුළත් කළ හැකිය.

සියලු ප්‍රශ්න වලට පිළිතුරු දුන් පසු, npm විසින් ඔබ ලබාදුන් තොරතුරු ඇතුළත් package.json file එකක් සාදනු ඇත.

නිමවූ `package.json` File එක:


{
  "name": "my-project",
  "version": "1.0.0",
  "description": "A simple Node.js project",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Your Name",
  "license": "ISC"
}
        

💡 **ඉක්මන් ක්‍රමය:** ඔබෙන් කිසිදු ප්‍රශ්නයක් නොඅසා, default අගයන් සමඟ package.json file එකක් සෑදීමට npm init -y command එක භාවිතා කළ හැක.


3. Dependencies Install කිරීම (`npm install`)

Dependencies යනු අපේ project එකට අවශ්‍ය වන බාහිර packages වේ. මේවා ප්‍රධාන වර්ග දෙකකි.

Package එකක් Install කිරීම:

අපි උදාහරණයක් ලෙස, array, numbers, objects, strings සමඟ වැඩ කිරීම පහසු කරන ඉතා ජනප්‍රිය package එකක් වන lodash install කර බලමු.

npm install lodash

නැතහොත් කෙටියෙන්:

npm i lodash

මෙම command එක run කළ පසු, දේවල් දෙකක් සිදු වේ:

  1. node_modules නමින් folder එකක් සෑදී, එහි `lodash` package එක සහ ඊට අදාළ අනෙකුත් packages download වේ.
  2. package.json file එක update වී, `dependencies` යටතේ `lodash` සහ එහි version එක ඇතුළත් වේ.
  3. package-lock.json නමින් file එකක් සෑදේ. මෙම file එක මගින් install කරන ලද සෑම package එකකම නිශ්චිත version එක සහ ඒවායේ dependencies පිළිබඳව සටහනක් තබා ගනී.これにより, වෙනත් අයෙක් ඔබේ project එක install කරන විට, ඔවුන්ටද ඔබ භාවිතා කළේම version එක ලැබෙන බවට සහතික වේ.

Dev Dependency එකක් Install කිරීම:

Development සඳහා පමණක් අවශ්‍ය nodemon වැනි package එකක් install කිරීමට --save-dev හෝ -D flag එක භාවිතා කළ යුතුය.

npm install nodemon --save-dev

නැතහොත් කෙටියෙන්:

npm i nodemon -D

මෙමගින් `nodemon` package එක `package.json` file එකේ `devDependencies` යටතේ ලැයිස්තුගත වේ.


4. `package.json` හි Scripts භාවිතය

නිතර භාවිතා කරන commands, scripts ලෙස package.json file එකේ ඇතුළත් කර, ඒවා කෙටි නම් වලින් run කිරීමට අපට හැකිය. මෙය project එක කළමනාකරණය ඉතා පහසු කරයි.

අපි අපේ `package.json` file එකේ `scripts` කොටස මෙසේ වෙනස් කරමු:


"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js",
  "test": "echo \"Error: no test specified\" && exit 1"
}
        

මෙහිදී:

Scripts Run කිරීම:

`start` script එක run කිරීමට:

npm start

වෙනත් ඕනෑම script එකක් (උදා: `dev`) run කිරීමට `run` යන වචනය යෙදිය යුතුය:

npm run dev

මෙමගින්, දිගු command මතක තබා ගැනීමකින් තොරව, සරල command එකකින් අපේ application එකේ විවිධ කාර්යයන් සිදු කරගත හැක.


Go Back to Module 2 Go to Module 4