Me inscribí en la versión beta del registro privado npm de Github y seguí sus instrucciones: https://github.com/features/package-registry
Funciona muy bien con npm pero prefiero usar hilo. Y aunque npm no tiene problemas para encontrar el paquete registrado, yarn no puede encontrarlo en absoluto.
yarn add @omniphx/adminite-adminite-ui-components salidas:
yarn add v1.19.0
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍 Resolving packages...
error Couldn't find package "@omniphx/adminite-ui-components" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Después de leer en repositorios privados con hilo, pensé que el truco se debía a que el hilo tenía un formato rc ligeramente diferente. Desafortunadamente, eso tampoco funcionó y Yarn todavía no puede encontrar el registro privado.
.npmrc
registry=https://registry.npmjs.org
@omniphx:registry=https://npm.pkg.github.com/omniphx
.yarnrc
registry "https://registry.npmjs.org"
"@omniphx:registry" "https://npm.pkg.github.com/omniphx"
También confirmó que mi token github también está configurado con yarn config list:
yarn config v1.19.0
info yarn config
{
'version-tag-prefix': 'v',
'version-git-tag': true,
'version-commit-hooks': true,
'version-git-sign': false,
'version-git-message': 'v%s',
'init-version': '1.0.0',
'init-license': 'MIT',
'save-prefix': '^',
'bin-links': true,
'ignore-scripts': false,
'ignore-optional': false,
registry: 'https://registry.npmjs.org',
'strict-ssl': true,
'user-agent': 'yarn/1.19.0 npm/? node/v12.11.1 darwin x64',
email: '[email protected]',
lastUpdateCheck: 1570679687836,
username: 'omniphx',
'@omniphx:registry': 'https://npm.pkg.github.com/omniphx'
}
info npm config
{
'//npm.pkg.github.com/:_authToken': 'fake12345',
registry: 'https://registry.npmjs.org',
'@omniphx:registry': 'https://npm.pkg.github.com/omniphx',
python: '/usr/bin/python'
}
¿Alguna idea?
Resuelto
Changed "@myorg:registry" "https://npm.pkg.github.com/myorg"
To "@myorg:registry" "https://npm.pkg.github.com"

Respuestas:
Me acabo de encontrar con una situación similar. Parecía que
yarnsolo estaba buscando en el registro principal de paquetes de Yarn el paquete privado de mi organización. Copié los ejemplos de la documentación de paquetes de GitHub para construir su.npmrcarchivo directamente en el.yarnrcarchivo del proyecto que consumirá la aplicación, sin saber que los formatos eran diferentes (nunca antes había tenido que lidiar con.yarnrcarchivos).Sin embargo, después de actualizar el
.yarnrcarchivo con el formato correcto que mencionó anteriormente (que también encontré buscando en Google),yarnencontré con éxito el paquete privado y lo instalé correctamente.Como aviso , mi
yarnversión: 1.17.3Pasos que tomé
cdal proyectonvm use(si tiene una versión de nodo específica para usar).yarnrcarchivo con el formato correcto al proyecto. Vea a continuación cómo se ve.package.jsonpara mi paquete privadonpm login --registry=https://npm.pkg.github.com --scope=@MyOrgyarnEso funcionó para mí.
.yarnrc
Nota : Vea a continuación una nota sobre el nombre de la organización / alcance gotcha's
Otras notas
Sé que parece que no tiene ningún problema con esto, dado su nombre de usuario / alcance de GH anterior, pero para cualquier otra persona que venga aquí, la documentación sobre GH es un poco escasa con respecto a la asignación de su nombre de usuario / nombre de organización a un alcance en el nombre del paquete. Solo recuerda estos pequeños trucos aquí:
name: @johndturn/my-packageMyOrg, simplemente reemplácelas en el nombre del paquete en supackage.jsony su.yarnrccon minúsculasname: @myorg/my-packagenpm login, todavía he mantenido las letras mayúsculas en el--scope=argumento.MyOrg/random-prefix.js-lib, puede tenername: @myorg/js-liben supackage.jsonarchivo el proyecto en sí. Luego, instalarlo en otros proyectos se verá algo así@myorg/js-lib: 1.0.0.fuente
Jenkinsfile, supongo que simplemente puede agregar los comandos anteriores (comonpm login ...) en suJenkinsfile, en un paso previo a la compilación. Esto también supone que tiene a Jenkins autenticado con algún tipo de usuario en su organización de GitHub que tiene los privilegios correctos para extraer paquetes de su organización. Dicho esto, todavía no lo he implementado para nuestros cuadros de Jenkins, pero le avisaré cuando lo haga (si varía de lo que he mencionado)."@myorg:registry" "https://npm.pkg.github.com/myorg"lugar de"@myorg:registry" "https://npm.pkg.github.com". Extraño que esa misma url funcionó bien en mi.npmrc/myorgfinal en su.npmrc, y luego el Registro de paquetes GitHub funciona con hilo o npm. (Sin necesidad de un separado.yarnrc.)No soy un experto en npm / yarn, por lo que podría estar malinterpretando lo que está sucediendo aquí, pero todavía no creo que el proxy del paquete del registro npm funcione con yarn. ¿Podría estar relacionado? Cuando se lanzó el paquete proxy para npm, recuerdo haber leído comentarios en Twitter de personas que lo probaron con hilo y no funcionó.
Encontré el hilo de Twitter aquí: https://twitter.com/github/status/1171832034580451328
fuente
El problema que tuve es ligeramente diferente.
Después de probar lo que John sugirió, todavía no puedo agregar paquetes de registro privado con
yarn(pero perfectamente bien connpm)Entonces me doy cuenta de dos cosas:
Para los paquetes de GitHub,
npmestá bien con cualquieraregistry=https://npm.pkg.github.com/my-orgo
@my-org:registry=https://npm.pkg.github.compero
yarnsolo permite la última sintaxis.Los documentos del sitio web de Github solo muestran la primera sintaxis que podría causar problemas a los usuarios de hilo.
Otra cosa es que si va
npm loginal registro privado pero usa un.yarnrcarchivo en su proyecto, yarn realmente no puede mezclar susnpmcredenciales con él. Aunque parece comportarse de manera diferente en un entorno diferente.Pero parece ser una buena práctica seguir con
yarn login+.yarnrconpm login+.npmrc(aún puede usar hilo para administrar sus paquetes en ambos casos)fuente