Kita perlu mengintegrasikan pelari ujian Karma ke dalam TeamCity dan untuk itu saya ingin memberikan skrip sys-engineer kecil (PowerShell atau apa pun) yang akan:
mengambil nomor versi yang diinginkan dari beberapa file konfigurasi (saya kira saya bisa memasukkannya sebagai komentar di
karma.conf.js
)periksa apakah versi terdefinisi dari karma runner terpasang di repo global npm
jika tidak, atau versi yang diinstal lebih lama dari yang diinginkan: ambil dan instal versi yang benar
menjalankannya:
karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run
Jadi pertanyaan saya yang sebenarnya adalah: "bagaimana orang bisa memeriksa skrip, jika versi yang diinginkan dari paket diinstal?". Haruskah Anda melakukan pemeriksaan, atau aman untuk menelepon saja npm -g install
setiap kali?
Saya tidak ingin selalu memeriksa dan menginstal versi terbaru yang tersedia, karena nilai konfigurasi lainnya mungkin menjadi tidak kompatibel
sumber
npm update
terutama dengannpm update -g
... itu tidak apa yang diharapkan sebagian besar kacang! Lihat: github.com/npm/npm/issues/6247 dan gist.github.com/othiym23/4ac31155da23962afd0enpm -g update
aman untuk digunakan lagi. github.com/npm/npm/issues/6247#issuecomment-92182814As of [email protected], 'npm update' will change package.json to save the new version as the minimum required dependency
docs.npmjs.com/cli/update.htmlnpm outdated
akan mengidentifikasi paket yang harus diperbarui, dannpm update <package name>
dapat digunakan untuk memperbarui setiap paket. Tetapi sebelum [email protected],npm update <package name>
tidak akan memperbarui versi di package.json Anda yang merupakan masalah.Alur kerja terbaik adalah:
npm update
untuk menginstal versi terbaru dari setiap paketLihat
npm-check-updates
untuk membantu dengan alur kerja ini.npm-check-updates
untuk mencantumkan paket apa yang kedaluwarsa (pada dasarnya sama dengan menjalankannpm outdated
)npm-check-updates -u
untuk memperbarui semua versi di package.json Anda (ini adalah saus ajaib)npm update
seperti biasa untuk menginstal versi baru paket Anda berdasarkan paket yang diperbarui. Jsonsumber
npm outdated
akan menampilkan SEMUA paket .. bahkan di dalam paket lain .. tetapi itu tidak akan diperbarui dengan prosedur ini sehingga mereka akan selalu muncul .. jadi gunakan sajanpm-check-updates
(seperti yang Anda sarankan) yang hanya menampilkan paket utama daripackage.json
... ini relevannpm install --all-outdated
tapi tidak ...npm update --save package_name
untuk menyimpan perubahan terbaru ke package.json.npm update
vsnpm-check-updates
?Ada juga modul "segar" bernama
npm-check
:Ini juga menyediakan cara interaktif yang nyaman untuk memperbarui dependensi.
sumber
Satu langkah mudah:
$ npm i -g npm-check-updates && ncu -u && npm i
Itu semuanya. Semua versi paket di
package.json
akan menjadi versi utama terbaru.Edit:
Apa yang terjadi disini?
sumber
ncu
adalah singkatan dari node-check-updates dan-a
merupakan opsi 'upgradeAll'. Temukan semua opsi di sini: npmjs.com/package/npm-check-updatesnpx -p npm-check-updates ncu -u
Untuk memperbarui satu paket lokal:
Pertama cari tahu paket usang Anda:
npm outdated
Kemudian perbarui paket atau paket yang Anda inginkan secara manual sebagai:
npm update --save package_name
Dengan cara ini tidak perlu memperbarui
package.json
file lokal Anda .Perhatikan bahwa ini akan memperbarui paket Anda ke versi terbaru.
Jika Anda menulis beberapa versi di
package.json
file Anda dan lakukan:npm update package_name
Dalam hal ini Anda hanya akan mendapatkan versi stabil berikutnya (diinginkan) mengenai versi yang Anda tulis di
package.json
file Anda .Dan dengan
npm list (package_name)
Anda dapat mengetahui versi saat ini dari paket lokal Anda.sumber
NPM memerintahkan untuk memperbarui atau memperbaiki kerentanan dalam beberapa file manifes dependensi
Gunakan perintah di bawah ini untuk memeriksa kedaluwarsa atau kerentanan dalam modul simpul Anda.
Jika ada kerentanan ditemukan, gunakan perintah di bawah ini untuk memperbaiki semua masalah.
Jika tidak berhasil, cobalah
Jika Anda tidak ingin menggunakan perbaikan audit paksa maka Anda dapat secara manual memperbaiki versi dependensi Anda dengan mengubahnya di file package-lock.json dan package.json . Lalu lari
npm update && npm upgrade
sumber
Periksa paket usang
Periksa dan pilih paket untuk diperbarui
npm oudated img
npx npm-check -u img
sumber
Tidak ada paket tambahan, hanya memeriksa yang sudah usang dan memperbarui yang ada, perintah ini akan melakukan:
npm install $(npm outdated | cut -d' ' -f 1 | sed '1d' | xargs -I '$' echo '$@latest' | xargs echo)
sumber
Saat memasang paket npm (baik secara global atau lokal), Anda dapat menentukan versi tertentu dengan menggunakan
@version
sintaks untuk menentukan versi yang akan diinstal.Dengan kata lain, melakukan:
npm install -g [email protected]
akan memastikan bahwa hanya 0.9.2 yang diinstal dan tidak akan menginstal ulang jika sudah ada.Sebagai saran, saya sarankan menghindari instalasi global npm di mana pun Anda bisa. Banyak orang tidak menyadari bahwa jika suatu dependensi mendefinisikan suatu file bin, ia terinstal ke ./node_modules/.bin/. Seringkali, sangat mudah untuk menggunakan versi lokal dari modul yang diinstal yang didefinisikan di package.json Anda. Bahkan, skrip npm akan menambahkan ./node_modules/.bin ke jalur Anda.
Sebagai contoh, ini adalah package.json, ketika saya menjalankan
npm install && npm test
akan menginstal versi karma yang didefinisikan di package.json saya, dan menggunakan versi karma tersebut (diinstal pada node_modules / .bin / karma) saat menjalankantest
skrip:Ini memberi Anda manfaat dari paket Anda. Johnny mendefinisikan versi karma untuk digunakan dan tidak harus menyimpan konfigurasi itu secara global di kotak CI Anda.
sumber
test
skrip? Tolong beri saya petunjuk bagaimana Anda menginstalnya dengan skrip.npm test
. npm docs cukup bagus di sini: npmjs.org/doc/scripts.htmlPada [email protected]+ Anda cukup melakukan:
Ini akan secara otomatis memperbarui
package.json
file. Kami tidak harus memperbarui versi terbaru secara manual dan kemudian menggunakannyanpm update <package name>
Anda masih bisa menggunakan perilaku lama
( Referensi )
sumber
Untuk benar-benar memperbarui hanya satu paket, instal NCU dan kemudian jalankan hanya untuk paket itu. Ini akan menabrak terbaru nyata.
sumber