כדי לציין את יחסי התלות של אפליקציית Node.js, צריך להצהיר עליהם בקובץ package.json.
לדוגמה, אם רוצים לציין את Lodash כתלות, קובץ package.json יכול להיראות כך:
{
"dependencies": {
"lodash": "^4.0.1"
}
}
במהלך הפריסה, סביבת זמן הריצה של Node.js מתקינה באופן אוטומטי את כל dependencies שהוגדרו בקובץ package.json. כברירת מחדל, נעשה שימוש בפקודה npm install, אבל יש תמיכה גם במנהלי החבילות Yarn ו-Pnpm:
Yarn: אם קיים קובץ
yarn.lock, נעשה שימוש בפקודהyarn install --productionבמקום זאת.Pnpm: אם קיים קובץ
pnpm-lock.yaml, נעשה שימוש בפקודהpnpm installבמקום זאת.
חשוב לוודא שקובץ yarn.lock או pnpm-lock.yaml לא צוין בקטע skip_files של קובץ app.yaml.
כברירת מחדל, App Engine שומר במטמון תלויות שנשלפו כדי לקצר את זמני הבנייה. כדי להתקין גרסה לא שמורה במטמון של התלות, משתמשים בפקודה:
gcloud app deploy --no-cache
תמיכה ומגבלות לגבי קובץ package.json בסביבה הרגילה:
אתם יכולים להשתמש בכל חבילת Node.js שתואמת ל-Linux עם App Engine, כולל חבילות שנדרשים להן תוספים מקוריים (C).
אם השדה
enginesמצוין ב-package.json, צריך להגדיר גרסה תואמת של Node.js.כל התלויות שאתם מגדירים בשדה
devDependenciesמתעלמים מהן והן לא מותקנות באפליקציה שלכם ב-App Engine.startהסקריפט צריך להיות קל משקל ולא לכלול שלבי בנייה, כדי להשיג את הביצועים הכי טובים, כי הסקריפט מופעל בכל פעם שנוצר מופע חדש של האפליקציה.
יחסי תלות פרטיים עם Artifact Registry
אם האפליקציה שלכם משתמשת במודול npm פרטי, אתם יכולים להשתמש במאגר חבילות Node.js ב-Artifact Registry כדי לארח יחסי תלות פרטיים. כשפורסים את האפליקציה, תהליך הבנייה יוצר באופן אוטומטי פרטי כניסה ל-Artifact Registry עבור חשבון השירות ב-Cloud Build, כך שלא תצטרכו ליצור פרטי כניסה נוספים.
כדי לכלול יחסי תלות פרטיים, צריך לציין את מאגר Artifact Registry ולהגדיר את ההגדרות לאימות מול המאגר בקובץ .npmrc שבספריית האפליקציה. לדוגמה:
@SCOPE:registry=https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
//REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME:always-auth=true
שימו לב שהגישה הזו פועלת גם במנהל החבילות Yarn v1.
אם אתם משתמשים ב-Yarn בגרסה 2 ואילך, אתם צריכים לציין את מאגר Artifact Registry ולהגדיר את ההגדרות לאימות מול המאגר בקובץ .yarnrc.yml בספריית האפליקציה. לדוגמה:
npmScopes:
SCOPE:
npmRegistryServer: https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
npmAlwaysAuth: true
לאחר מכן, מוסיפים את החבילות לקובץ package.json. לדוגמה:
{
"dependencies": {
" @SCOPE/my-package": "^1.0.0"
}
}
התקנה של מסגרת אינטרנט
כדי שהאפליקציה תוכל לטפל בבקשות אינטרנט, צריך להשתמש במסגרת אינטרנט. אפשר להשתמש בכל framework אינטרנט של Node.js, כולל:
כדי להשתמש ב-framework מסוים לאינטרנט, כמו Express.js, מוסיפים את ה-framework לקובץ package.json:
לדוגמה, קובץ package.json שמתקבל יכול להיראות כך:
{
"dependencies": {
"lodash": "^4.0.1",
"express": "^4.16.2"
}
}
התקנת ספריות לקוח של Cloud
ספריות הלקוח של Cloud ל-Node.js הן הדרך המקובלת למפתחי Node.js לשלב עם שירותים כמו Firestore במצב Datastore (Datastore) ו-Cloud Storage. Google Cloud
כדי להתקין את ספריית הלקוח של Node.js ל-Cloud Storage:
מתקינים את ספריות הלקוח של Cloud באופן מקומי באמצעות מנהל חבילות:
כדי להשתמש ב-
npm, מריצים את הפקודה:npm install @google-cloud/storage
כדי להשתמש ב-
yarn, מריצים את הפקודה:yarn add @google-cloud/storage
כדי להשתמש ב-
pnpm, מריצים את הפקודה:pnpm add @google-cloud/storage
מגדירים אימות. אפשר להגדיר את ספריות הלקוח של Cloud ל-Node.js כך שהאימות יתבצע באופן אוטומטי.
משתמשים בהפניה לספריית הלקוח של Node.js ל-Cloud Storage כדי להטמיע תמיכה בשירות Cloud Storage באפליקציה.