תיעוד 248
תמונת בנייה
לסביבת הבנייה של Cloudflare Pages יש תמיכה רחבה במגוון שפות, כגון Ruby, Node.js, Python, PHP ו-Go.
אם צריך להשתמש בגרסה מסוימת של שפה (לדוגמה, Node.js או Ruby), אפשר לציין אותה על ידי מתן משתנה סביבה מתאים בהגדרות הבנייה, או על ידי הגדרת הקובץ הרלוונטי בקוד המקור.
#שפות וכלים נתמכים
בטבלאות הבאות, עיינו בגרסאות המותקנות מראש לשפות ולכלים שנכללים בתמונת הבנייה של Cloudflare Pages, ובמשתני הסביבה ו/או בקבצים הזמינים לדריסת הגרסה המותקנת מראש:
#שפות וזמן ריצה
v3
| כלי | גרסת ברירת מחדל | גרסאות נתמכות | משתנה סביבה | קובץ |
|---|---|---|---|---|
| Go | 1.24.3 | כל גרסה | GO_VERSION | |
| Node.js | 22.23.4 | כל גרסה | NODE_VERSION | .nvmrc, .node-version |
| Bun | 1.4.4 | כל גרסה | BUN_VERSION | |
| Python | 3.13.3 | כל גרסה | PYTHON_VERSION | .python-version, runtime.txt |
| Ruby | 3.4.4 | כל גרסה | RUBY_VERSION | .ruby-version |
v2
| כלי | גרסת ברירת מחדל | גרסאות נתמכות | משתנה סביבה | קובץ |
|---|---|---|---|---|
| Go | 1.21.0 | כל גרסה | GO_VERSION | |
| Node.js | 18.17.1 | כל גרסה | NODE_VERSION | .nvmrc, .node-version |
| Bun | 1.4.4 | כל גרסה | BUN_VERSION | |
| Python | 3.11.5 | כל גרסה | PYTHON_VERSION | .python-version, runtime.txt |
| Ruby | 3.2.2 | כל גרסה | RUBY_VERSION | .ruby-version |
v1
| כלי | גרסת ברירת מחדל | גרסאות נתמכות | משתנה סביבה | קובץ |
|---|---|---|---|---|
| Clojure | ||||
| Elixir | 1.7 | 1.7 בלבד | ||
| Erlang | 21 | 21 בלבד | ||
| Go | 1.14.4 | כל גרסה | GO_VERSION | |
| Java | 8 | 8 בלבד | ||
| Node.js | 12.18.0 | כל גרסה | NODE_VERSION | .nvmrc, .node-version |
| PHP | 5.6 | 5.6, 7.2, 7.4 בלבד | PHP_VERSION | |
| Python | 2.7 | 2.7, 3.5, 3.7 בלבד | PYTHON_VERSION | runtime.txt, Pipfile |
| Ruby | 2.7.1 | כל גרסה בין 2.6.2 ל-2.7.5 | RUBY_VERSION | .ruby-version |
| Swift | 5.2.5 | כל גרסת 5.x | SWIFT_VERSION | .swift-version |
| .NET | 3.1.302 |
כל גרסה
תחת גרסאות נתמכות, "כל גרסה" מתייחס לתמיכה בכל הגרסאות של השפה או הכלי, כולל גרסאות חדשות יותר מגרסת ברירת המחדל.
#כלים
v3
| כלי | גרסת ברירת מחדל | גרסאות נתמכות | משתנה סביבה |
|---|---|---|---|
| Bundler | 2.6.9 | תואם לגרסת Ruby | |
| Embedded Dart Sass | 1.62.1 | עד 1.62.1 | EMBEDDED_DART_SASS_VERSION |
| gem | 3.6.9 | תואם לגרסת Ruby | |
| Hugo | 0.147.7 | כל גרסה | HUGO_VERSION |
| npm | 10.9.9 | תואם לגרסת Node.js | |
| pip | 26.2.2 | תואם לגרסת Python | |
| pipx | 1.7.1 | ||
| pnpm | 10.11.1 | כל גרסה | PNPM_VERSION |
| Poetry | 2.1.3 | ||
| Yarn | 4.9.1 | כל גרסה | YARN_VERSION |
| Zola | 0.22.1 | כל גרסה | ZOLA_VERSION |
v2
| כלי | גרסת ברירת מחדל | גרסאות נתמכות | משתנה סביבה |
|---|---|---|---|
| Bundler | 2.4.10 | תואם לגרסת Ruby | |
| Embedded Dart Sass | 1.62.1 | עד 1.62.1 | EMBEDDED_DART_SASS_VERSION |
| gem | 3.4.10 | תואם לגרסת Ruby | |
| Hugo | 0.118.2 | כל גרסה | HUGO_VERSION |
| npm | 9.6.7 | תואם לגרסת Node.js | |
| pip | 26.2.2 | תואם לגרסת Python | |
| pipx | 1.2.0 | ||
| pnpm | 8.7.1 | כל גרסה | PNPM_VERSION |
| Poetry | 1.6.1 | ||
| Yarn | 3.6.3 | כל גרסה | YARN_VERSION |
| Zola | 0.22.1 | כל גרסה | ZOLA_VERSION |
v1
| כלי | גרסת ברירת מחדל | גרסאות נתמכות | משתנה סביבה |
|---|---|---|---|
| Boot | 2.5.2 | 2.5.2 | |
| Bower | |||
| Cask | |||
| Composer | |||
| Doxygen | 1.8.6 | ||
| Emacs | 25 | ||
| Gutenberg | (נדרש משתנה סביבה) | כל גרסה | GUTENBERG_VERSION |
| Hugo | 0.54.0 | כל גרסה | HUGO_VERSION |
| GNU Make | 3.8.1 | ||
| ImageMagick | 6.7.7 | ||
| jq | 1.5 | ||
| Leiningen | |||
| OptiPNG | 0.6.4 | ||
| npm | תואם לגרסת Node.js | כל גרסה | NPM_VERSION |
| pip | תואם לגרסת Python | ||
| Pipenv | הגרסה האחרונה | ||
| sqlite3 | 3.11.0 | ||
| Yarn | 1.22.4 | כל גרסה מ-0.2.0 עד 1.22.19 | YARN_VERSION |
| Zola | (נדרש משתנה סביבה) | כל גרסה מ-0.5.0 ומעלה | ZOLA_VERSION |
כל גרסה
תחת גרסאות נתמכות, "כל גרסה" מתייחס לתמיכה בכל הגרסאות של השפה או הכלי, כולל גרסאות חדשות יותר מגרסת ברירת המחדל.
#מסגרות
כדי להשתמש בגרסה מסוימת של מסגרת, ציינו אותה בקובץ ההגדרות של מנהל החבילות של הפרויקט. לדוגמה, אם משתמשים ב-Gatsby, הקובץ package.json צריך לכלול את הדברים הבאים:
"dependencies": {
"gatsby": "^5.13.7",
}כשהבנייה מתחילה, אם עדיין לא שמורה במטמון, גרסה 5.13.7 של Gatsby תותקן באמצעות npm install.
#הגדרות מתקדמות
#דריסת גרסאות ברירת מחדל
כדי לדרוס גרסאות ברירת מחדל של שפות וכלים במערכת הבנייה, אפשר להגדיר את הגרסה הרצויה באמצעות משתני סביבה, או על ידי הוספת קבצים לפרויקט.
כדי להגדיר את הגרסה באמצעות משתני סביבה, אפשר:
- מצאו את שם משתנה הסביבה של השפה או הכלי בטבלה הזו.
- הוסיפו את משתנה הסביבה בלוח הבקרה על ידי מעבר אל Settings > Environment variables בפרויקט Pages, או הוסיפו את משתנה הסביבה באמצעות Wrangler.
או, כדי להגדיר את הגרסה על ידי הוספת קובץ לפרויקט, אפשר:
- מצאו את שם הקובץ של השפה או הכלי בטבלה הזו.
- הוסיפו את שם הקובץ שצוין לתיקיית השורש של הפרויקט, והוסיפו את מספר הגרסה הרצוי כתוכן הקובץ.
לדוגמה, אם בעבר הסתמכתם על גרסת ברירת המחדל של Node.js במערכת הבנייה v1, כדי לעבור ל-v2, חובה לציין שצריך את Node.js 12.18.0 על ידי הגדרת משתנה סביבה NODE_VERSION = 12.18.0, או על ידי הוספת קובץ .node-version או .nvmrc לפרויקט עם 12.18.0 כתוכן הקובץ.
#דילוג על התקנת תלויות
אפשר להוסיף את משתנה הסביבה הבא כדי לבטל התקנה אוטומטית של תלויות, ולהריץ במקום זאת פקודת התקנה מותאמת.
| משתנה בנייה | ערך |
|---|---|
SKIP_DEPENDENCY_INSTALL | 1 או true |
#מערכת הבנייה v3
מערכת הבנייה v3 מעדכנת את הכלים, הספריות והשפות שבברירת המחדל לגרסאות ה-LTS שלהן, נכון למאי 2025.
#מעבר מ-v2 ל-v3
כדי לעבור לגרסה החדשה הזו, הגדירו את הגדרות פרויקט Pages בלוח הבקרה:
- בלוח הבקרה של Cloudflare, עברו אל הדף Workers & Pages. מעבר אל Workers & Pages ↗
- בחרו את פרויקט Pages.
- עברו אל Deployments > All deployments > ובחרו את הגרסה האחרונה.
אם בעבר הסתמכתם על גרסאות ברירת המחדל של שפות או כלים כלשהם במערכת הבנייה, הבנייה עלולה להיכשל במעבר ל-v3. כדי לתקן זאת, חובה לציין את הגרסה שרוצים להשתמש בה על ידי דריסה של גרסאות ברירת המחדל.
#מגבלות
התכונות הבאות אינן נתמכות כרגע בשימוש במערכת הבנייה v3:
- ציון גרסאות Node.js כשמות קוד (לדוגמה,
hydrogenאוlts/hydrogen). - זיהוי גרסת Yarn מגרסת הקובץ
yarn.lock. - זיהוי גרסת pnpm מגרסת הקובץ
pnpm-lock.yaml. - זיהוי Node.js ומנהלי חבילות מ-
package.json->"engines". - תמיכה ב-
pipenvוב-Pipfile.
#סביבת בנייה
בניות של Cloudflare Pages רצות בקונטיינר gVisor ↗︎.
v3
| סביבת בנייה | Ubuntu 22.04.2 |
|---|---|
| ארכיטקטורה | x86_64 |
v2
| סביבת בנייה | Ubuntu 22.04.2 |
|---|---|
| ארכיטקטורה | x86_64 |
v1
| סביבת בנייה | Ubuntu 20.04.5 |
|---|---|
| ארכיטקטורה | x86_64 |
#אישורים מהימנים
פקודות הבנייה משתמשות באישורי ה-CA המותקנים בתמונת הבנייה בנתיב /etc/ssl/certs/ca-certificates.crt. Pages מגדיר את משתני הסביבה הבאים כדי שסביבות ריצה עם אישורי CA משלהן, הארוזים יחד איתן, ישתמשו גם בהם, כולל גרסאות ישנות יותר שבוחרים באמצעות דריסת גרסה:
| משתנה סביבה | ערך |
|---|---|
SSL_CERT_FILE | /etc/ssl/certs/ca-certificates.crt |
PIP_CERT | /etc/ssl/certs/ca-certificates.crt |
REQUESTS_CA_BUNDLE | /etc/ssl/certs/ca-certificates.crt |
NODE_OPTIONS | --use-openssl-ca |
אם מגדירים אחד מהמשתנים האלה כמשתנה סביבה בפרויקט, הערך שלכם מחליף את ברירת המחדל. --use-openssl-ca נוסף ל-NODE_OPTIONS שלכם, אלא אם הוא כבר מכיל --use-openssl-ca או --use-bundled-ca.
#מדיניות תמונת הבנייה
#הוצאה משימוש של גרסת תמונת הבנייה
אם משתמשים כרגע בתמונת הבנייה v1 או v2, הפרויקט יועבר אוטומטית ל-v3:
- תמונת בנייה v1: אם משתמשים בתמונת הבנייה v1 של Pages, הפרויקט יועבר אוטומטית ל-v3 ב-15 בספטמבר 2026.
- תמונת בנייה v2: אם משתמשים בתמונת הבנייה v2 של Pages, הפרויקט יועבר אוטומטית ל-v3 ב-23 בפברואר 2027.
תקבלו הודעה 6 חודשים לפני תאריך ההוצאה משימוש דרך יומן השינויים של Cloudflare ↗︎, התראות בלוח הבקרה, ודואר אלקטרוני.
מכאן והלאה, תמונת הבנייה v3 תקבל עדכונים מתגלגלים לתוכנה המותקנת מראש לפי המדיניות שלהלן. לא יהיו עוד שינויי גרסה של תמונת הבנייה.
#עדכוני תוכנה מותקנת מראש
תוכנה מותקנת מראש (שפות וכלים) תעודכן לפני הגעה לסוף החיים (EOL). העדכונים האלה חלים רק אם לא דרסתם את גרסת ברירת המחדל.
- עדכוני גרסת משנה: עשויים להתעדכן לגרסת המשנה האחרונה הזמינה בלי הודעה מוקדמת. לכלים שאינם עוקבים אחרי גרסאות סמנטיות (לדוגמה, Bun או Hugo), עדכונים שעשויים לכלול שינויים שוברים יקבלו הודעה של 3 חודשים.
- עדכוני גרסה ראשית: מעודכנים לגרסת התמיכה ארוכת הטווח (LTS) היציבה הבאה עם הודעה של 3 חודשים.
איך תקבלו הודעה (לשינויים שדורשים הודעה):
- יומן השינויים של Cloudflare ↗︎
- התראות בלוח הבקרה לפרויקטים שיקבלו את העדכון
- התראות בדואר אלקטרוני לבעלי הפרויקט
כדי לשמור על גרסה מסוימת ולהימנע מעדכונים אוטומטיים, דרסו את גרסת ברירת המחדל.
#שיטות עבודה מומלצות
כדי להימנע מכשלי בנייה לא צפויים:
- מעקב אחרי הודעות דרך יומן השינויים של Cloudflare ↗︎, התראות בלוח הבקרה, ודואר אלקטרוני
- תכנון מעבר כשמקבלים הודעות על עדכון
- נעיצת גרסאות מסוימות של תוכנה קריטית המותקנת מראש על ידי דריסת גרסאות ברירת מחדל