npm
Ini adalah kegagalan registri npm yang tangguh terhadap proses replikasi indeks Algolia. Ini akan mereplikasi semua paket npm ke indeks Algolia dan tetap memperbaruinya. Status replikasi disimpan dalam pengaturan indeks Algolia.
Replikasi harus selalu berjalan. Hanya satu instance per indeks Algolia yang harus dijalankan pada waktu yang sama . Jika proses gagal, mulai ulang dan proses replikasi akan dilanjutkan pada titik terakhir yang diingatnya.
Indeks Algolia saat ini digunakan secara gratis oleh beberapa proyek terpilih (misalnya: Yarnpkg.com, Codesandbox.io, jsdelivr.com, dll...).
Jika Anda ingin memasukkan indeks ini ke proyek Anda, silakan buat permintaan dukungan di sini: Dukungan Algolia.
Produk ini merupakan produk open source untuk komunitas dan tidak didukung oleh Algolia.
Agar memenuhi syarat, proyek Anda harus memenuhi persyaratan berikut:
Anda juga dapat menggunakan kode atau gambar buruh pelabuhan publik untuk menjalankannya sendiri (mulai September 2021, ini akan membuat ~3 juta data x4).
Untuk setiap paket NPM, kami membuat catatan di indeks Algolia. Catatan yang dihasilkan memiliki skema berikut:
{
name : 'babel-core' ,
downloadsLast30Days : 10978749 ,
downloadsRatio : 0.08310651682685861 ,
humanDownloadsLast30Days : '11m' ,
jsDelivrHits : 11684192 ,
popular : true ,
version : '6.26.0' ,
versions : {
// [...]
'7.0.0-beta.3' : '2017-10-15T13:12:35.166Z' ,
} ,
tags : {
latest : '6.26.0' ,
old : '5.8.38' ,
next : '7.0.0-beta.3' ,
} ,
description : 'Babel compiler core.' ,
dependencies : {
'babel-code-frame' : '^6.26.0' ,
// [...]
} ,
devDependencies : {
'babel-helper-fixtures' : '^6.26.0' ,
// [...]
} ,
repository : {
url : 'https://github.com/babel/babel/tree/master/packages/babel-core' ,
host : 'github.com' ,
user : 'babel' ,
project : 'babel' ,
path : '/tree/master/packages/babel-core' ,
branch : 'master' ,
} ,
readme : '# babel-corenn> Babel compiler core.nnn [... truncated at 200kb]' ,
owner : {
// either GitHub owner or npm owner
name : 'babel' ,
avatar : 'https://github.com/babel.png' ,
link : 'https://github.com/babel' ,
} ,
deprecated : 'Deprecated' , // This field will be removed, please use `isDeprecated` instead
isDeprecated : true ,
deprecatedReason : 'Deprecated' ,
isSecurityHeld : false , // See https://github.com/npm/security-holder
badPackage : false ,
homepage : 'https://babeljs.io/' ,
license : 'MIT' ,
keywords : [
'6to5' ,
'babel' ,
'classes' ,
'const' ,
'es6' ,
'harmony' ,
'let' ,
'modules' ,
'transpile' ,
'transpiler' ,
'var' ,
'babel-core' ,
'compiler' ,
] ,
created : 1424009748555 ,
modified : 1508833762239 ,
lastPublisher : {
name : 'hzoo' ,
email : '[email protected]' ,
avatar : 'https://gravatar.com/avatar/851fb4fa7ca479bce1ae0cdf80d6e042' ,
link : 'https://www.npmjs.com/~hzoo' ,
} ,
owners : [
{
email : '[email protected]' ,
name : 'thejameskyle' ,
avatar : 'https://gravatar.com/avatar/8a00efb48d632ae449794c094f7d5c38' ,
link : 'https://www.npmjs.com/~thejameskyle' ,
} ,
// [...]
] ,
lastCrawl : '2017-10-24T08:29:24.672Z' ,
dependents : 3321 ,
types : {
ts : 'definitely-typed' , // definitely-typed | included | false
definitelyTyped : '@types/babel__core' ,
} ,
moduleTypes : [ 'unknown' ] , // esm | cjs | none | unknown
styleTypes : [ 'none' ] , // file extensions like css, less, scss or none if no style files present
humanDependents : '3.3k' ,
changelogFilename : null , // if babel-core had a changelog, it would be the raw GitHub url here
objectID : 'babel-core' ,
// the following fields are considered internal and may change at any time
_downloadsMagnitude : 8 ,
_jsDelivrPopularity : 5 ,
_popularName : 'babel-core' ,
_searchInternal : {
alternativeNames : [
// alternative versions of this name, to show up on confused searches
] ,
} ,
}
Jika Anda ingin mempelajari lebih lanjut tentang cara kerja algoritma pemeringkatan Algolia, Anda dapat membaca postingan blog ini.
Kami membatasi penelusuran untuk menggunakan subkumpulan atribut saja:
_popularName
name
description
keywords
owner.name
owners.name
Algolia menyediakan kemampuan pencarian awalan default (mencocokkan kata hanya dengan permulaan). Ini dinonaktifkan untuk atribut owner.name
dan owners.name
.
Algolia memberikan toleransi kesalahan ketik default.
Dengan menggunakan fitur optionalFacetFilters
dari Algolia, kami meningkatkan pencocokan tepat pada nama paket agar selalu menjadi yang teratas dalam hasil.
Untuk setiap paket, kami menggunakan jumlah unduhan dalam 30 hari terakhir sebagai pengaturan customRanking
Algolia. Ini akan digunakan untuk mengurutkan hasil yang memiliki relevansi tekstual yang sama satu sama lain.
Misalnya, telusuri babel
dengan kecocokan babel-core
dan babel-messages
. Dari sudut pandang relevansi tekstual, kedua paket tersebut sama persis. Dalam kasus seperti ini, Algolia akan mengandalkan pengaturan customRanking
dan oleh karena itu menempatkan paket dengan jumlah unduhan terbanyak dalam 30 hari terakhir terlebih dahulu.
Beberapa paket akan dianggap populer jika diunduh "lebih banyak" dibandingkan paket lainnya. Saat ini kami menganggap suatu paket populer jika:
0.005%
dari total jumlah unduhan npm, Bendera popular
ini juga digunakan untuk mendongkrak beberapa rekor dibandingkan rekor yang tidak populer.
yarn
apiKey=... yarn start
Untuk memulai kembali dari titik tertentu (atau dari awal):
seq=0 apiKey=... yarn start
Ini berguna ketika Anda ingin menyinkronkan ulang registri npm sepenuhnya karena:
seq
mewakili urutan perubahan dalam istilah CouchDB.
Tujuan kami dengan proyek ini adalah untuk:
Ketika proses dimulai dengan seq=0
:
Replikasi dan tontonan dipisahkan karena:
Lihat KONTRIBUSI.md