mpn
Este es un registro npm resistente a fallas para el proceso de replicación de índices de Algolia. Replicará todos los paquetes npm en un índice de Algolia y lo mantendrá actualizado. El estado de la replicación se guarda en la configuración del índice de Algolia.
La replicación siempre debe estar ejecutándose. Sólo se debe ejecutar una instancia por índice de Algolia al mismo tiempo . Si el proceso falla, reinícielo y el proceso de replicación continuará en el último punto que recuerde.
El índice Algolia se utiliza actualmente, de forma gratuita, en algunos proyectos seleccionados (por ejemplo: Yarnpkg.com, codesandbox.io, jsdelivr.com, etc...).
Si desea incluir este índice en su proyecto, cree una solicitud de soporte aquí: Soporte de Algolia.
Este producto es un producto de código abierto para la comunidad y no cuenta con el respaldo de Algolia.
Para ser elegible su proyecto debe cumplir con estos requisitos:
También puede utilizar el código o la imagen pública de la ventana acoplable para ejecutar el suyo propio (a partir de septiembre de 2021, creará ~3 millones de registros x4).
Para cada paquete NPM, creamos un registro en el índice de Algolia. Los registros resultantes tienen el siguiente esquema:
{
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
] ,
} ,
}
Si desea obtener más información sobre cómo funciona el algoritmo de clasificación de Algolia, puede leer esta publicación de blog.
Estamos restringiendo la búsqueda para utilizar únicamente un subconjunto de atributos:
_popularName
name
description
keywords
owner.name
owners.name
Algolia proporciona capacidades de búsqueda de prefijos predeterminadas (que coinciden con palabras solo con el comienzo). Esto está deshabilitado para los atributos owner.name
y owners.name
.
Algolia proporciona tolerancia a errores tipográficos predeterminada.
Utilizando la función optionalFacetFilters
de Algolia, estamos aumentando las coincidencias exactas en el nombre de un paquete para estar siempre al tanto de los resultados.
Para cada paquete, utilizamos la cantidad de descargas en los últimos 30 días como configuración customRanking
de Algolia. Esto se utilizará para ordenar los resultados que tengan la misma relevancia textual entre sí.
Por ejemplo, busque babel
que coincida tanto con babel-core
como con babel-messages
. Desde el punto de vista de la relevancia textual, esos 2 paquetes coinciden exactamente de la misma manera. En tal caso, Algolia se basará en la configuración customRanking
y, por lo tanto, colocará primero el paquete con el mayor número de descargas en los últimos 30 días.
Algunos paquetes se considerarán populares si se han descargado "más" que otros. Actualmente consideramos que un paquete es popular si:
0.005%
del número total de descargas de npm, Esta bandera popular
también se utiliza para mejorar algunos récords sobre otros no populares.
yarn
apiKey=... yarn start
Para reiniciar desde un punto particular (o desde el principio):
seq=0 apiKey=... yarn start
Esto es útil cuando desea resincronizar completamente el registro npm porque:
seq
representa una secuencia de cambio en la jerga de CouchDB.
Nuestro objetivo con este proyecto es:
Cuando el proceso comienza con seq=0
:
Replicar y observar están separados porque:
Ver CONTRIBUCIÓN.md