כברירת מחדל, סביבת זמן הריצה של node.js תבצע את הפקודה npm run build אם יזוהה סקריפט build בקובץ package.json. אם אתם צריכים שליטה נוספת בשלבי הבנייה לפני הפעלת האפליקציה, אתם יכולים לספק שלב בנייה בהתאמה אישית. אפשר להוסיף gcp-build לקובץ package.json כדי להריץ שלבי build בהתאמה אישית.
כדי למנוע את הרצת הסקריפט npm run build ב-build, צריך:
- מוסיפים סקריפט
gcp-buildעם ערך ריק לקובץpackage.json:"gcp-build":"". פרטים על הגדרתpackage.jsonזמינים במאמר הגדרות של Node.js buildpacks. מוסיפים את משתנה הסביבה של ה-build
GOOGLE_NODE_RUN_SCRIPTSעם ערך ריק לקובץapp.yaml.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables בקובץ app.yaml.
כשמריצים את הסקריפט הזה, התלויות בשדות dependencies ו-devDependencies בקובץ package.json זמינות.
אחרי שמבצעים את שלב הבנייה המותאם אישית, App Engine מסיר את התיקייה node_modules ויוצר אותה מחדש על ידי התקנה רק של יחסי התלות של הסביבה הפרודקטיבית שהוגדרו בשדה dependencies בקובץ package.json.
מידע נוסף על הגדרת זמן הריצה לשלבי build בהתאמה אישית זמין במאמר ביצוע שלבי build בהתאמה אישית במהלך הפריסה בנושא Node.js buildpacks.
דוגמה
אפשר להשתמש בסקריפט build בהתאמה אישית למשימות עיבוד מקדים, כמו עיבוד מקדים של CSS, הקטנה של JavaScript בצד הלקוח או הפעלת כלים כמו webpack או gulp.
לדוגמה, כדי לקמפל TypeScript ל-JavaScript, קובץ package.json יכול להיראות כך. שימו לב לסקריפט gcp-build:
הצגת קבצים סטטיים
כשיוצרים או מעתיקים קבצים במהלך שלב הבנייה בהתאמה אישית, App Engine לא מציג את הקבצים הסטטיים האלה ישירות מהאפליקציה באמצעות הרכיבים static_dir או static_files שמוגדרים בקובץ app.yaml. במקום זאת, App Engine מעלה את הקבצים הסטטיים לתשתית ההצגה בסביבה הרגילה לפני הפעלת שלב הבנייה בהתאמה אישית. כל בקשה לקבצים שנוצרו או הועתקו במהלך שלב הבנייה בהתאמה אישית מובילה לשגיאת HTTP 404 NOT FOUND.