כברירת מחדל, סביבת זמן הריצה של node.js תבצע את הפקודה npm run build אם יזוהה סקריפט build בקובץ package.json. אם אתם צריכים שליטה נוספת בשלבי הבנייה לפני הפעלת האפליקציה, אתם יכולים לספק שלב בנייה בהתאמה אישית. אפשר להריץ שלבי build מותאמים אישית על ידי הוספת gcp-build לקובץ package.json.
כדי למנוע את הרצת הסקריפט 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:
הצגת קבצים סטטיים
כשיוצרים או מעתיקים קבצים במהלך שלב ה-build המותאם אישית, App Engine לא מציג את הקבצים הסטטיים האלה ישירות מהאפליקציה באמצעות הרכיבים static_dir או static_files שמוגדרים בקובץ app.yaml. במקום זאת, App Engine מעלה את הקבצים הסטטיים לתשתית ההגשה בסביבה הרגילה לפני הפעלת שלב ה-build המותאם אישית. כל בקשה לקבצים שנוצרו או הועתקו במהלך שלב ה-build בהתאמה אישית מובילה לשגיאת HTTP 404 NOT FOUND.