

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengonfigurasi dependensi aplikasi Anda pada Elastic Beanstalk
<a name="nodejs-platform-dependencies"></a>

Aplikasi Anda mungkin memiliki dependensi pada beberapa Node.js modul, seperti yang Anda tentukan dalam `require()` pernyataan. Modul-modul ini disimpan dalam `node_modules` direktori. Ketika aplikasi Anda berjalan, Node.js memuat modul dari direktori ini. Untuk informasi selengkapnya, lihat [Memuat dari folder node\_modules dalam dokumentasi](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders). Node.js

Anda dapat menentukan dependensi modul ini menggunakan file. `package.json` *Jika Elastic Beanstalk mendeteksi file ini `node_modules` dan direktori tidak ada, Elastic Beanstalk berjalan sebagai pengguna webapp. `npm install`* `npm install`Perintah menginstal dependensi di `node_modules` direktori, yang dibuat Elastic Beanstalk sebelumnya. `npm install`Perintah mengakses paket yang tercantum dalam `package.json` file dari registri npm publik atau lokasi lain. Untuk informasi selengkapnya, lihat situs web [npm Docs.](https://docs.npmjs.com/about-the-public-npm-registry) 

Jika Elastic Beanstalk `node_modules` mendeteksi direktori, Elastic Beanstalk tidak berjalan, bahkan jika ada file. `npm install` `package.json` Elastic Beanstalk mengasumsikan bahwa paket dependensi tersedia di direktori untuk diakses dan dimuat`node_modules`. Node.js

Bagian berikut memberikan informasi selengkapnya tentang membuat dependensi Node.js modul untuk aplikasi Anda.

**catatan**  
Jika Anda mengalami masalah penerapan saat Elastic Beanstalk `npm install` berjalan, pertimbangkan pendekatan alternatif. Sertakan `node_modules` direktori dengan modul dependensi dalam bundel sumber aplikasi Anda. Melakukannya dapat menghindari masalah dengan menginstal dependensi dari registri npm publik saat Anda menyelidiki masalah tersebut. Karena modul ketergantungan bersumber dari direktori lokal, dong ini mungkin juga membantu mengurangi waktu penerapan. Untuk informasi selengkapnya, lihat [Menyertakan Node.js dependensi dalam direktori node\_modules](#nodejs-platform-nodemodules)

## Menentukan Node.js dependensi dengan file package.json
<a name="nodejs-platform-packagejson"></a>

Sertakan file `package.json` di akar sumber proyek Anda untuk menentukan paket dependensi dan memberikan perintah mulai. Saat `package.json` file ada, dan `node_modules` direktori tidak ada di root sumber proyek Anda, Elastic `npm install` Beanstalk berjalan *sebagai* pengguna webapp untuk menginstal dependensi dari registri npm publik. Elastic Beanstalk juga `start` menggunakan perintah untuk memulai aplikasi Anda. Untuk informasi selengkapnya tentang `package.json` file, lihat [Menentukan dependensi dalam `package.json` file di situs web](https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file) *npm* Docs. 

Gunakan kata kunci `scripts` untuk memberikan perintah mulai. Saat ini, `scripts` kata kunci digunakan sebagai pengganti `NodeCommand` opsi lama di `aws:elasticbeanstalk:container:nodejs` namespace.

**Example package.json – Express**  

```
{
    "name": "my-app",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
      "ejs": "latest",
      "aws-sdk": "latest",
      "express": "latest",
      "body-parser": "latest"
    },
    "scripts": {
      "start": "node app.js"
    }
  }
```

**Mode produksi dan dependensi dev**  
*Untuk menentukan dependensi Anda dalam `package.json` file, gunakan atribut *dependensi dan devDependencies*.* Atribut *dependencies* menunjuk paket-paket yang dibutuhkan oleh aplikasi Anda dalam produksi. Atribut *devDependencies* menunjuk paket yang hanya diperlukan untuk pengembangan dan pengujian lokal.

Jika Anda perlu menginstal paket *devDependencies*, setel properti lingkungan NPM\_USE\_PRODUCTION ke. `false` Dengan pengaturan ini kami tidak akan menggunakan opsi di atas saat menjalankan npm install. Ini akan mengakibatkan paket *devDependencies diinstal*.

## Menyertakan Node.js dependensi dalam direktori node\_modules
<a name="nodejs-platform-nodemodules"></a>

Untuk menyebarkan paket dependensi ke instance lingkungan bersama dengan kode aplikasi Anda, sertakan mereka dalam direktori yang diberi nama `node_modules` di root sumber proyek Anda. Untuk informasi selengkapnya, lihat [Mengunduh dan menginstal paket secara lokal di situs](https://docs.npmjs.com/downloading-and-installing-packages-locally) web *npm Docs*. 

[Saat Anda menerapkan `node_modules` direktori ke versi AL2023/AL2 Node.jsplatform, Elastic Beanstalk mengasumsikan bahwa Anda menyediakan paket dependensi Anda sendiri, dan menghindari penginstalan dependensi yang ditentukan dalam file package.json.](#nodejs-platform-packagejson) Node.jsmencari dependensi di direktori. `node_modules` Untuk informasi selengkapnya, lihat [Memuat dari node\_modules Folder dalam dokumentasi](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders). Node.js

**catatan**  
Jika Anda mengalami masalah penerapan saat Elastic Beanstalk `npm install` berjalan, pertimbangkan untuk menggunakan pendekatan yang dijelaskan dalam topik ini sebagai solusi saat Anda menyelidiki masalah tersebut.   
 

### Pertimbangan untuk Node.js di Amazon Linux 2
<a name="nodejs-al2-considerations"></a>

Baca bagian ini jika Anda menggunakan cabang platform *Node.js* yang berjalan di *Amazon Linux 2*.

#### Pertimbangan untuk Node.js di Amazon Linux 2
<a name="nodejs-al2-considerations-detail"></a>

**catatan**  
Informasi dalam topik ini berlaku untuk cabang Node.js platform yang berjalan di Amazon Linux 2. Konten di sini menjelaskan AL2 -fitur dan perilaku spesifik yang berbeda dari AL2023.

**Variasi perintah**  
Opsi perintah bervariasi tergantung pada versi npm yang disertakan pada cabang platform Amazon Linux 2 tempat aplikasi Anda berjalan.
+ npm v6 - Elastic Beanstalk menginstal dependensi dalam mode produksi secara default. Ia menggunakan perintah`npm install --production`. 
+ *npm v7 atau lebih besar — Elastic Beanstalk menghilangkan devDependencies.* Ia menggunakan perintah`npm install --omit=dev`.

Kedua perintah yang tercantum di atas tidak menginstal paket yang *devDependencies*. 

**Protokol SSH dan HTTPS untuk dependensi Git**  
Dimulai dengan rilis platform Amazon Linux 2 7 Maret 2023, Anda dapat menggunakan protokol SSH dan HTTPS untuk mengambil paket dari repositori Git. Platform branch Node.js 16 mendukung protokol SSH dan HTTPS. Node.js14 hanya mendukung protokol HTTPS.

**Example package.json - Node.js 16 mendukung HTTPS dan SSH**  

```
    ...
    "dependencies": {
      "aws-sdk": "https://github.com/aws/aws-sdk-js.git",
      "aws-chime": "git+ssh://git@github.com:aws/amazon-chime-sdk-js.git"
    }
```

**Versi dan rentang versi**  
Gunakan `engines` kata kunci dalam `package.json` file untuk menentukan Node.js versi yang Anda ingin aplikasi Anda gunakan. Anda juga dapat menentukan rentang versi menggunakan notasi npm. Untuk informasi selengkapnya tentang sintaks untuk rentang versi, lihat [Pembuatan Versi Semantik menggunakan npm di situs](https://nodejs.dev/learn/semantic-versioning-using-npm) web. Node.js `engines`Kata kunci dalam Node.js `package.json` file menggantikan `NodeVersion` opsi lama di namespace. `aws:elasticbeanstalk:container:nodejs`

**penting**  
Fitur untuk menentukan rentang versi tidak tersedia untuk cabang platform Node.js yang berjalan AL2023. Kami hanya mendukung satu versi Node.js dalam cabang Node.js tertentu di AL2023. Jika `package.json` file Anda menentukan rentang versi, kami akan mengabaikannya dan default ke versi cabang platform Node.js.

**Example `package.json`— Node.js Versi tunggal**  

```
{
    ...
    "engines": { "node" : "14.16.0" }
  }
```

**Example `package.json`— rentang Node.js versi**  

```
{
    ...
    "engines": { "node" : ">=10 <11" }
  }
```

Ketika rentang versi ditunjukkan, Elastic Beanstalk menginstal versi terbaru yang tersedia Node.js platform dalam kisaran tersebut. Dalam contoh ini, rentang menunjukkan bahwa versi harus lebih besar dari atau sama dengan versi 10, tetapi kurang dari versi 11. [Hasilnya, Elastic Beanstalk menginstal versi 10.x.y terbaru, Node.js yang tersedia di platform yang didukung.](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs)

Ketahuilah bahwa Anda hanya dapat menentukan Node.js versi yang sesuai dengan cabang platform Anda. Misalnya, jika Anda menggunakan cabang platform Node.js 16, Anda hanya dapat menentukan 16.x.y Node.js versi. Anda dapat menggunakan opsi rentang versi yang didukung oleh npm untuk mengizinkan lebih banyak fleksibilitas. Untuk Node.js versi yang valid untuk setiap cabang platform, lihat [https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs)di panduan *AWS Elastic Beanstalk Platform*.

**catatan**  
Ketika support versi Node.js yang digunakan dihapus dari platform, Anda harus mengubah atau menghapus pengaturan versi Node.js sebelum melakukan [pembaruan platform](using-features.platform.upgrade.md). Hal ini mungkin terjadi ketika kelemahan keamanan diidentifikasi pada satu atau beberapa versi Node.js.  
Ketika ini terjadi, upaya untuk memperbarui ke versi platform baru yang tidak support versi Node.js yang dikonfigurasi akan gagal. Agar tidak perlu membuat lingkungan baru, ubah pengaturan versi Node.js di `package.json` ke versi Node.js yang didukung versi platform lama dan yang baru. Anda memiliki opsi untuk menentukan rentang versi Node.js yang mencakup versi yang didukung, seperti yang dijelaskan sebelumnya dalam topik ini. Anda juga memiliki opsi untuk menghapus pengaturan, dan kemudian menyebarkan bundel sumber baru.