אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פיתוח ב-JavaScript » Node.js watch mode

Node.js watch mode

רן בר-זיק פברואר 26, 2023 7:07 am אין תגובות

לא חייבים להשתמש ב-nodemon בשביל לבצע watch אלא אפשר לעשות את זה באופן טבעי החל מ Node.js 18

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

מדי פעם יש פיצ׳רים ממש מעניינים ושימושיים בגרסאות של Node.js. אחד מהם הוא כל כך חביב שהתלהבתי ממנו וחשבתי לשתף. ה-Watch mode שזמין ב-Node.js 18 שהוא ה-LTS האחרון. (LTS, למי שלא יודע, זה Long-term support – כלומר גרסה שמתחייבים אליה לזמני תחזוקה ארוכים יותר ובדרך כלל הגרסה שאתם רוצים על שרתי הפרודקשן שלכם).

מה זה watch? הרילואוד האוטומטי בכל פעם שאני משנה את הקבצים שלי. בגדול, כשאני מריץ תוכנה ב-Node.js, התוכנה נטענת מקבצי הג׳אווהסקריפט הקיימים. אבל מה הבעיה? מה קורה כשאני משנה את הקבצים? התשובה היא שהתוכנה שנמצאת עכשיו ורצה לא מושפעת. וזה ״קצת״ מבאס כי אז אני צריך להרוג את התוכנה ולטעון אותה שוב.

על מנת להמנע מזה היו לנו פתרונות כמו nodemon. מה ש-Nodemon עשה זה להסתכל על כל הקבצים שאמרנו לו להסתכל עליהם ואם הוא זיהה שינוי באחד בהם (באמצעות FS.watch) אז הוא הרג את התוכנה ופתח אותה שוב. בעוד Nodemon היה שימושי למדי, עדיין מדובר בתוספת תוכנה חיצונית. עכשיו Node.js מגיע עם תוספת של watch. וזה נחמד מאוד.

אז איך מפעילים את זה? ובכן, בלי כאב ראש מיוחד אלא עם watch–

הנה למשל קוד http server פשוט שבפשוטים:

// Load the http module
const http = require('http');

// Configure our HTTP server to respond with 'Hello World' to all requests.
const server = http.createServer((request, response) => {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World!!!!!!');
});

// Listen on port 8080
server.listen(8080);

// Put a friendly message on the terminal
console.log('Server running at http://localhost:8080/');

אם אני שומר אותו ב-index.js, על מנת להפעיל אותו, אני צריך להשתמש ב node index.js. אבל אם אני אשנה אותו, אני אצטרך להרוג את התוכנה ולטעון אותה. איך עושים את זה אוטומטית? בעבר, על מנת להריץ אותו במוד watch, הייתי צריך להתקין אותו עם nodemon. ובכן, לא עוד. כדי להפעיל אותו, אני צריך לוודא שאני בגרסה 18.11.0 לפחות של Node.js ואז להשתמש בפלאג watch– באופן הבא:

node --watch index.js

וזהו!

ככה זה נראה:

node --watch index.js                                                                   
(node:73812) ExperimentalWarning: Watch mode is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
Server running at http://localhost:8080/

אם נשנה את קוד המקור ב-index.js אנו נראה שהקובץ נטען מחדש ונראה מיד את השינוי עם הריפרוש של הדף. אני אצטרך לרפרש את הדף ידנית בדפדפן, אבל לא להרוג את הפרוסס ולפתוח אותו שוב.

זה עובד לא רק בדוגמת ה-Hello World אלא גם בדוגמאות נוספות יותר מורכבות. למשל אם יש לי import של קובץ זה או אחר, שינוי בקבצים האלו יגרום לטעינה מחדש של הדף. אם אתם משתמשים בגרסה 18, כדאי להכיר. מה שעוד נחמד לדעת זה שישראלי בשם משה אטלו תרם לפיצ׳ר הזה. איזה יופי!

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
node.js

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד