Menangani dependensi, ketidakcocokan, dan perkakas - Amazon CodeCatalyst

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

Menangani dependensi, ketidakcocokan, dan perkakas

Manajemen dependensi yang salah dapat menyebabkan kegagalan build dan masalah runtime bagi mereka yang menggunakan cetak biru kustom Anda. Perkakas dan komponen yang sudah ketinggalan zaman dapat mencegah pengguna cetak biru mengakses fitur terbaru dan perbaikan bug. Anda dapat mengelola dependensi, menangani ketidakcocokan dependensi, serta meningkatkan perkakas dan komponen untuk memastikan semua dependensi bergantung pada versi komponen yang sama dan komponen disinkronkan.

Menambahkan dependensi

Sebagai penulis cetak biru, Anda mungkin perlu menambahkan paket ke cetak biru Anda, seperti. @amazon-codecatalyst/blueprint-component.environments Anda perlu memperbarui projen.ts file dengan paket itu, dan kemudian membuat ulang konfigurasi proyek Anda dengan Projen. Projen bertindak sebagai model proyek untuk setiap basis kode cetak biru, yang menyediakan kemampuan untuk mendorong pembaruan perkakas yang kompatibel dengan mundur dengan mengubah cara model merender file konfigurasi. package.jsonFile tersebut adalah file yang sebagian dimiliki oleh model Projen. Projen mengakui versi ketergantungan yang disertakan dalam file package.json, tetapi opsi lain harus berasal dari model.

Untuk menambahkan dependensi dan memperbarui file projenrc.ts

  1. Dalam projen.ts file, navigasikan ke bagian deps.

  2. Tambahkan ketergantungan yang ingin Anda gunakan dalam cetak biru Anda.

  3. Gunakan perintah berikut untuk membuat ulang konfigurasi proyek Anda:

    yarn projen && yarn

Menangani ketidakcocokan jenis ketergantungan

Setelah pembaruan Yarn, Anda mungkin mendapatkan kesalahan berikut terkait parameter repositori:

Type 'SourceRepository' is missing the following properties from type 'SourceRepository': synthesisSteps, addSynthesisStep

Kesalahan ini disebabkan ketidakcocokan ketergantungan yang terjadi ketika satu komponen bergantung pada versi yang lebih baru dari komponen lain, tetapi komponen yang mengandalkan disematkan ke versi yang lebih lama. Kesalahan dapat diperbaiki dengan membuat semua komponen Anda bergantung pada versi yang sama sehingga versi disinkronkan di antara mereka. Yang terbaik adalah menyimpan semua paket yang dijual cetak biru di bawah versi terbaru (0.0.x) yang sama, kecuali Anda yakin tentang bagaimana Anda menangani versi tersebut. Contoh berikut menunjukkan bagaimana package.json file dapat dikonfigurasi sehingga semua dependensi bergantung pada versi yang sama:

... "@caws-blueprint-component/caws-environments": "^0.1.12345", "@caws-blueprint-component/caws-source-repositories": "^0.1.12345", "@caws-blueprint-component/caws-workflows": "^0.1.12345", "@caws-blueprint-component/caws-workspaces": "^0.1.12345", "@caws-blueprint-util/blueprint-utils": "^0.1.12345", ... "@caws-blueprint/blueprints.blueprint": "*",

Setelah mengonfigurasi versi untuk semua dependensi, gunakan perintah berikut:

yarn install

Menggunakan benang dan npm

Cetak biru menggunakan Yarn untuk perkakas. Menggunakan npm dan Yarn akan menyebabkan masalah perkakas karena cara pohon ketergantungan diselesaikan oleh masing-masing berbeda. Untuk menghindari masalah seperti itu, yang terbaik adalah menggunakan Benang saja.

Jika Anda tidak sengaja menginstal dependensi menggunakan npm, Anda dapat menghapus file yang dihasilkan, dan memastikan package-lock.json .projenrc.ts file Anda diperbarui dengan dependensi yang Anda butuhkan. Anda membuat ulang konfigurasi proyek Anda dengan Projen.

Gunakan yang berikut ini untuk meregenerasi dari model:

yarn projen

Setelah memastikan file.projenrc.ts Anda diperbarui dengan dependensi yang diperlukan, gunakan perintah berikut:

yarn

Memutakhirkan perkakas dan komponen

Terkadang, Anda mungkin ingin memutakhirkan perkakas dan komponen Anda untuk menghadirkan fitur baru yang tersedia. Anda disarankan untuk menyimpan semua komponen pada versi yang sama kecuali Anda yakin tentang bagaimana Anda menangani versi. Versi disinkronkan antar komponen, sehingga versi yang sama untuk semua komponen memastikan ketergantungan yang tepat di antara mereka.

Menggunakan Yarn workspace monorepo

Gunakan perintah berikut untuk memutakhirkan utilitas dan komponen dari root repositori cetak biru kustom:

yarn upgrade @amazon-codecatalyst/*

Gunakan perintah berikut jika Anda tidak menggunakan monorepo:

yarn upgrade —pattern @amazon-codecatalyst/*

Opsi lain yang dapat Anda gunakan untuk meningkatkan perkakas dan komponen:

  • Gunakan tampilan npm @caws-blueprint-component/<some-component> untuk mendapatkan versi terbaru.

  • Tingkatkan ke versi terbaru secara manual dengan menyetel versi di file package.json Anda dan menggunakan perintah berikut:. yarn Semua komponen dan utilitas harus memiliki versi yang sama.