Pipa Azure – kecualikan paket ‘sudah terpasang’ dalam build sudut dari perintah ‘npm install’

pemrograman


Edisi untuk – Pipa Azure Build untuk proyek sudut.
Saya harus menjalankan pekerjaan npm install setiap kali proyek sudut dibangun dengan permintaan tarik baru.

Skenario – Saya telah menyesuaikan 2 paket untuk kebutuhan proyek saya. Saya tidak ingin menimpa paket-paket ini setiap kali ada perintah npm install. Setelah ditimpa secara manual, tidak boleh disentuh.

Apakah ada cara untuk mengabaikan paket tertentu di package.json setelah diinstal?
dengan kata lain, Apakah mungkin menginstal paket npm hanya jika paket tersebut belum diinstal?
Mencari arahan dari para ahli 🙂

Apa yang saya coba:

1. Kecualikan paket-paket ini dari file package.json

Masalah dengan solusi ini – Jika saya harus menyebarkan aplikasi saya pada sistem baru, paket-paket itu tidak akan pernah diinstal.

2. Saya menambahkan paket-paket ini ke folder lain dan mencoba mereferensikan paket-paket tersebut dari sana. Ini tidak berfungsi seperti yang diharapkan.

Solusi 2

Anda dapat mencoba yang berikut ini;

Menggunakan npm-shrinkwrap.json

1. Sesuaikan dan Instal Paket: Awalnya instal dan sesuaikan paket Anda sesuai kebutuhan.
2. Hasilkan npm-shrinkwrap.json: Jalankan npm shrinkwrap di direktori proyek Anda. Perintah ini membuat file npm-shrinkwrap.json yang mengunci versi semua paket yang diinstal dan dependensinya.
3. Edit npm-shrinkwrap.json: Di npm-shrinkwrap.json, Anda dapat mengedit entri untuk paket khusus Anda secara manual agar mengarah ke versi spesifik atau salinan lokal Anda. Dengan cara ini, setiap kali npm install berjalan, ia akan menghormati versi dan sumber yang ditentukan dalam npm-shrinkwrap.json, mengabaikan pembaruan atau perubahan apa pun yang biasanya diambil dari registri npm.

Jika tidak berhasil, coba dengan jalur lokal:

Memanfaatkan package-lock.json dengan Jalur Lokal

1. Instal Paket Khusus Secara Lokal: Tempatkan paket khusus Anda di direktori yang dikenal dalam proyek Anda atau di tempat yang dapat diakses oleh proyek Anda.
2. Ubah package.json: Referensikan paket lokal ini ke package.json Anda dengan menentukan jalurnya, bukan nomor versinya.

JSON
"dependencies": {
  "custom-package": "file:./path/to/custom-package",
}

3.Komit package-lock.json: Setelah menjalankan npm install, pastikan package-lock.json Anda diperbarui dan komit file ini ke repositori Anda. package-lock.json memastikan bahwa struktur persis direktori node_modules Anda direplikasi pada instalasi selanjutnya, termasuk penggunaan paket lokal.

Saya akan menyarankan untuk menggunakan metode pertama, jika tidak berhasil, Anda dapat pergi dan mengganti paket.

Menggunakan .npmrc untuk Mengganti Lokasi Paket

Konfigurasikan .npmrc: Anda dapat menggunakan file .npmrc untuk mengganti lokasi sumber paket tertentu. Ini sedikit lebih canggih dan biasanya digunakan untuk beralih di antara registri yang berbeda, namun Anda dapat menentukan jalur lokal atau URL khusus untuk paket Anda.

Namun, pendekatan ini mengharuskan paket Anda terstruktur dan dapat diinstal dengan cara yang mirip dengan yang dihosting di registri npm, yang mungkin memerlukan pengaturan tambahan untuk paket khusus Anda.

コメント

タイトルとURLをコピーしました