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
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. Saat aplikasi Anda berjalan, Node.js memuat modul dari direktori ini. Untuk informasi selengkapnya, lihat Memuat dari folder node_modules
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.
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 node_modules
Node.js untuk mengakses dan memuat.
Bagian berikut memberikan informasi lebih lanjut tentang membangun Node.js dependensi 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, silakan lihat Termasuk Node.js dependensi dalam direktori node_modules
Menentukan Node.js dependensi dengan file package.json
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
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.
contoh 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 pengembang
Untuk menentukan dependensi Anda dalam package.json
file, gunakan dependensi dan atribut. devDependencies Atribut dependencies menunjuk paket-paket yang dibutuhkan oleh aplikasi Anda dalam produksi. devDependenciesAtribut menunjuk paket yang hanya diperlukan untuk pengembangan dan pengujian lokal.
Elastic npm install
Beanstalk berjalan sebagai pengguna webapp dengan perintah berikut. Opsi perintah bervariasi tergantung pada versi npm yang disertakan pada cabang platform 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 ada devDependencies.
Jika Anda perlu menginstal devDependenciespaket, setel properti PRODUCTION lingkungan NPM USE _ _ kefalse
. Dengan pengaturan ini kami tidak akan menggunakan opsi di atas saat menjalankan npm install. Ini akan menghasilkan devDependenciespaket yang diinstal.
SSHdan HTTPS
Dimulai dengan rilis platform Amazon Linux 2 7 Maret 2023, Anda juga dapat menggunakan HTTPS protokol SSH dan untuk mengambil paket dari repositori Git. Cabang platform Node.js 16 mendukung HTTPS protokol SSH dan protokol. Node.js 14 hanya mendukung HTTPS protokol.
contoh package.json — Node.js 16 mendukung keduanya 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
penting
Fitur untuk menentukan rentang versi tidak tersedia untuk cabang platform Node.js yang berjalan pada AL2 023. Kami hanya mendukung satu versi Node.js dalam cabang Node.js tertentu di AL2 023. Jika package.json
file Anda menentukan rentang versi, kami akan mengabaikannya dan default ke versi cabang platform Node.js.
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 npmengines
kunci dalam Node.js package.json
file menggantikan NodeVersion
opsi lama di namespace. aws:elasticbeanstalk:container:nodejs
contoh package.json
— Tunggal Node.js versi
{
...
"engines": { "node" : "14.16.0" }
}
contoh package.json
– Node.js rentang versi
{
...
"engines": { "node" : ">=10 <11" }
}
Ketika rentang versi ditunjukkan, Elastic Beanstalk menginstal yang terbaru Node.js versi yang platform telah tersedia dalam jangkauan. 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 yang terbaru Node.js versi 10.x.y, yang tersedia di platform yang didukung.
Ketahuilah bahwa Anda hanya dapat menentukan Node.js versi yang sesuai dengan cabang platform Anda. Misalnya, jika Anda menggunakan Node.js 16 cabang platform, 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 valid Node.js versi untuk setiap cabang platform, lihat Node.jsdalam 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. 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.
Termasuk Node.js dependensi dalam direktori node_modules
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
Saat Anda menyebarkan node_modules
direktori ke 023/ AL2 AL2 Node.js versi platform, Elastic Beanstalk mengasumsikan bahwa Anda menyediakan paket dependensi Anda sendiri, dan menghindari menginstal dependensi yang ditentukan dalam file package.json. Node.js mencari dependensi di direktori. node_modules
Untuk informasi selengkapnya, lihat Memuat dari Folder node_modules
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.