כלים מובנים של Node.js מודרני
עד לפני כמה שנים, כמעט כל פרויקט Node.js התחיל בהתקנה של nodemon, dotenv, ספריית בדיקות ו-node-fetch. היום כל אלה מובנים ב-Node.js עצמו. השיעור מרכז את מה שכדאי להכיר ב-2026.
node --version.--watch: הרצה מחדש בכל שמירה
node --watch server.js
Node.js מריץ את הקובץ מחדש בכל פעם ששומרים אותו או קובץ שהוא מייבא. זה מחליף את nodemon. נוח להגדיר ב-package.json:
{
"scripts": {
"dev": "node --watch server.js",
"start": "node server.js"
}
}
--env-file: משתני סביבה מקובץ
סיסמאות, מפתחות API וכתובת מסד הנתונים לא נכתבים בקוד. שמים אותם בקובץ .env (שלא עולה ל-Git!):
# .env
PORT=3000
DATABASE_URL=mysql://root:secret@localhost:3306/shop
API_KEY=abc123
node --env-file=.env server.js
const port = Number(process.env.PORT) || 3000;
const apiKey = process.env.API_KEY;
if (!apiKey) {
throw new Error('חסר API_KEY בקובץ .env');
}
זה מחליף את חבילת dotenv. כל הערכים ב-process.env הם מחרוזות, ולכן Number(...) על מספרים. אפשר לשלב: node --watch --env-file=.env server.js.
fetch מובנה
const response = await fetch('https://api.example.com/items', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'עט' }),
});
if (!response.ok) {
throw new Error(`הבקשה נכשלה: ${response.status}`);
}
const created = await response.json();
אותו fetch שלמדתם בקורס JavaScript, בלי node-fetch ובלי axios.
node:test: בדיקות בלי ספרייה
// math.test.js
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { add } from './math.js';
test('חיבור של שני מספרים', () => {
assert.equal(add(2, 3), 5);
});
test('חיבור עם אפס', () => {
assert.equal(add(7, 0), 7);
});
# מוצא ומריץ את כל קובצי *.test.js
node --test
לפרויקטים גדולים עדיין בוחרים לפעמים ב-Vitest או Jest, אבל לפרויקט קטן או לספרייה, node:test מספיק לגמרי.
להריץ TypeScript ישירות
מגרסה 22.18 (ומ-23.6 ואילך) Node.js מריץ קובצי .ts בלי שלב קומפילציה: הוא פשוט "מוחק" את הטיפוסים ומריץ את ה-JavaScript שנשאר.
node app.ts
שימו לב: Node.js לא בודק את הטיפוסים, רק מסיר אותם. לבדיקה אמיתית עדיין מריצים tsc. על כל זה בהרחבה בקורס TypeScript.
עוד כמה שכדאי להכיר
| כלי | מה הוא עושה |
|---|---|
node --run dev | מריץ script מ-package.json, מהר יותר מ-npm run |
import.meta.dirname | התיקייה של הקובץ הנוכחי ב-ES Module (במקום __dirname) |
structuredClone(obj) | העתקה עמוקה של אובייקט |
crypto.randomUUID() | מזהה ייחודי, בלי חבילת uuid |
util.parseArgs | קריאת ארגומנטים משורת הפקודה לכלי CLI |
שלד פרויקט מומלץ
{
"name": "my-app",
"type": "module",
"engines": { "node": ">=22" },
"scripts": {
"dev": "node --watch --env-file=.env src/server.js",
"start": "node src/server.js",
"test": "node --test"
}
}
.gitignore
node_modules/
.env
עם השלד הזה אתם מוכנים ל-קורס Express.
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
מה מחליף את nodemon ב-Node.js מודרני?
הצגת התשובה
תשובה ב. --watch מריץ מחדש בכל שמירה.
-
מה עושה
node --env-file=.env server.js?הצגת התשובה
תשובה א. זכרו: .env תמיד ב-.gitignore.
-
מה מריץ
node --test?הצגת התשובה
תשובה ג. מריץ בדיקות בלי להתקין Jest או Mocha.