מדריך מלא לפרסום ספריות ב־npm עם ניהול גרסאות (SemVer)
פרסום ספרייה משלכם ל־npm נשמע מאיים, אבל עם ניהול גרסאות לפי SemVer ואוטומציה ב־GitHub Actions, התהליך הופך לפשוט ומסודר.
במדריך הזה נעבור שלב־שלב: איך להגדיר גרסאות, איך ליצור Release בגיטהאב, ואיך לדחוף אוטומטית את הספרייה ל־npm.
מה זה Semantic Versioning (SemVer)?
SemVer הוא תקן שמחלק מספרי גרסאות לשלושה חלקים:
MAJOR.MINOR.PATCH
- MAJOR – שינוי ששובר תאימות (Breaking Changes)
- MINOR – תוספת פיצ’רים חדשים בלי לשבור תאימות
- PATCH – תיקוני באגים ושיפורים קטנים
דוגמאות:
1.0.0→ גרסה ראשונה יציבה1.0.1→ תיקון באג קטן1.1.0→ פיצ’ר חדש שנוסף בלי לשבור תאימות2.0.0→ שינוי גדול ששובר תאימות עם קוד קודם
שלב 1: עדכון גרסה מקומית
ב־npm יש פקודה מובנית לעדכון גרסה:
# תיקון באג קטן
npm version patch
# פיצ'ר חדש
npm version minor
# שינוי גדול ששובר תאימות
npm version major
הפקודה הזו:
- תעדכן את
package.jsonעם הגרסה החדשה. - תיצור commit אוטומטי.
- תוסיף tag מתאים (למשל
v1.0.1).
שלב 2: דחיפת הטאגים לגיטהאב
git push origin main --tags
הפקודה הזאת דוחפת ל־remote גם את הקוד וגם את ה־tag של הגרסה. החליפו את השם של ה־branch הראשי שלכם בשם שמוגדר אצלכם (main, master, etc)
שלב 3: יצירת Release בגיטהאב
- היכנס ל־Releases ברפו.
- לחץ על New Release.
- בחר את ה־tag שיצרת (או צור חדש).
- תן כותרת – למשל:
v1.0.0 – גרסה ראשונה 🎉 - הוסף Release Notes – מה חדש, אילו פיצ’רים נוספו או באגים תוקנו.
- לחץ Publish release.
שלב 4: GitHub Actions ל־npm
קובץ ה־workflow שלך (ב־.github/workflows/publish.yml) צריך להיראות בערך כך:
name: Publish to npm
on:
release:
types: [created]
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://registry.npmjs.org
- run: npm ci
- run: npm run build
- run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- צריך להכניס את ה־
NPM_TOKENשלך ל־GitHub Secrets של הרפוזיטורי. - בכל פעם שתיצור Release חדש → הוא ירוץ אוטומטית ויפרסם ל־npm.
שלב 5: בדיקה אחרי הפרסום
אחרי שה־workflow רץ בהצלחה:
npm info שם-הספרייה-שלך
או פשוט גש לכתובת:
https://www.npmjs.com/package/your-package-name
טיפים לניהול גרסאות
- אל תדלג על מספרים – תמיד patch → minor → major.
- תעד שינויים – נהל קובץ
CHANGELOG.mdאו כתוב Notes בריליסים. - שמור על תאימות לאחור – במידת האפשר, תעדכן MINOR במקום MAJOR.
- בדוק לוקאלית לפני פרסום – תריץ
npm run buildותבדוק את הספרייה בפרויקט דמו. - שחרור ראשון? תמיד
1.0.0.
סיכום
בזכות SemVer ו־GitHub Actions, כל פרסום גרסה הופך לשגרה פשוטה:
npm versiongit push --tags- יצירת Release בגיטהאב
- פרסום ל־npm מתבצע אוטומטית
כך אפשר לתחזק ספרייה בצורה מקצועית, ברורה ונוחה לשימוש גם עבורך וגם עבור הקהילה.