Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.6K
Vistas
La publicación de npm falla con el registro de GitLab NPM

He intentado hacer uso del nuevo registro NPM que ahora forma parte de la edición gratuita de GitLab. Estoy intentando crear un paquete NPM y publicarlo en la instancia de GitLab de nuestra empresa. Al intentar ejecutar npm publish , el proceso finaliza con el error:

 npm ERR! code E404 npm ERR! 404 Not Found - PUT https://gitlab.myemployer.com/api/v4/projects/1873/packages/npm/@sqt-klu%2fodysseus-nn-core npm ERR! 404 npm ERR! 404 '@sqt-klu/odysseus-nn-core@0.0.1' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url.

Este problema aparece cuando se ejecuta a través de GitLab CI/CD, así como a través de la línea de comando local.

Como referencia, la URL de nuestro GitLab interno es gitlab.myemployer.com/sqt-klu/odysseus/nn-core. Como tal, supongo que @sqt-klu es el alcance que quiere GitLab.

El archivo CI/CD (y lo que he estado tratando de replicar localmente) hace esto antes npm publish durante la fase before_script :

 - npm config set @sqt-klu:registry https://gitlab.myemployer.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/ - npm config set https://gitlab.myemployer.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken ${CI_JOB_TOKEN}

Localmente, mi npmrc a nivel de usuario es el siguiente (el token real se elimina, pero es un token de acceso personal al que se le han asignado todos los ámbitos posibles):

 audit-level=high python=c:\Python27\python.exe https://gitlab.myemployer.com/api/v4/projects/1873/packages/npm/:_authToken=redacted @sqt-klu:registry=https://gitlab.myemployer.com/api/v4/projects/1873/packages/npm/

Y si es relevante, aquí están los contenidos cruciales de package.json (he omitido contributors , dependencies , devDependencies , engine y author en este extracto):

 { "name": "@sqt-klu/odysseus-nn-core", "version": "0.0.1", "license": "UNLICENSED", "publishConfig": { "@sqt-klu:registry":"https://gitlab.myemployer.com/api/v4/projects/1873/packages/npm/" } }

También probé algunos nombres de paquetes diferentes según esta guía oficial , sin éxito.

Siento que me estoy perdiendo algo muy trivial, pero estoy atascado en esto. Cualquier sugerencia o idea útil es apreciada.

Nota: He reemplazado el FQDN del punto final en todas las menciones en caso de que mi empleador se ponga de mal humor por esto.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los errores 404 pueden, quizás de manera confusa, referirse a problemas con las credenciales en esta situación.

deberías reemplazar

 https://gitlab.myemployer.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken

con:

 //gitlab.myemployer.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken

Todas las demás configuraciones se ven bien* y deberían funcionar. De forma predeterminada, un proyecto de Gitlab debe tener habilitada la función de repositorio de paquetes. Puede activarlo/desactivarlo en la configuración del proyecto.


* podría reducir el alcance de su token de acceso personal a solo api .
Cuando/si usa tokens de implementación a nivel de proyecto o de organización/grupo, solo necesitan read_package_registry y/o write_package_registry .

over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso, tuve un problema similar y esta pregunta me ayudó a entender el problema.

  • Verifique package.json y la configuración de publishConfig . Como se muestra en la pregunta, el formato es @company:registy . Al principio no entendí bien y pensé que "registro" significaba su nombre. Pero es literalmente 'registro'.

¡Espero que sea útil para alguien!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda