Eu me inscrevi no registro privado do npm beta do Github e segui as instruções: https://github.com/features/package-registry
Funciona muito bem com npm, mas eu prefiro usar fios. E embora o npm não tenha problemas para encontrar o pacote registrado, o fio não consegue encontrá-lo.
yarn add @omniphx/adminite-adminite-ui-components
saídas:
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.
Depois de ler em repositórios privados com fios, pensei que o truque se devia a fios com um formato rc ligeiramente diferente. Infelizmente, isso também não funcionou e o fio ainda não conseguiu encontrar o 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"
Também confirmou que meu token do github também está definido com 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'
}
Qualquer ideia?
Resolvido
Changed "@myorg:registry" "https://npm.pkg.github.com/myorg"
To "@myorg:registry" "https://npm.pkg.github.com"
Respostas:
Acabei de encontrar uma situação semelhante. Parecia que
yarn
estava procurando apenas no registro principal do pacote Yarn o pacote privado da minha organização. Copiei os exemplos da documentação de Pacotes do GitHub para construir seu.npmrc
arquivo diretamente no.yarnrc
arquivo no projeto que consumirá o aplicativo, sem saber que os formatos eram diferentes (nunca tive que lidar com.yarnrc
arquivos antes).No entanto, após atualizar o
.yarnrc
arquivo com o formato correto que você mencionou acima (que eu também encontrei no Google), localizei comyarn
êxito o pacote privado e o instalei corretamente.Como aviso , minha
yarn
versão: 1.17.3Passos que tomei
cd
para o projetonvm use
(se você tiver uma versão de nó específica para usar).yarnrc
arquivo formatado corretamente ao projeto. Veja abaixo como ele se parece.package.json
pacote privadonpm login --registry=https://npm.pkg.github.com --scope=@MyOrg
yarn
Isso funcionou para mim.
.yarnrc
Nota : Veja abaixo uma observação sobre o nome da organização / escopo,
Outras notas
Eu sei que parece que você não tem problemas com isso, dado o nome de usuário / escopo do GH acima, mas para qualquer pessoa que venha aqui, a documentação do GH é um pouco esparsa no que diz respeito ao mapeamento do nome de usuário / organização para um escopo no nome do pacote. Basta lembrar que estas pequenas pegadinhas estão aqui:
name: @johndturn/my-package
MyOrg
, basta substituí-las no nome do pacote em seupackage.json
e seu.yarnrc
por minúsculasname: @myorg/my-package
npm login
, ainda mantive as letras maiúsculas no--scope=
argumento.MyOrg/random-prefix.js-lib
, você pode tername: @myorg/js-lib
em seupackage.json
arquivo o próprio projeto. Em seguida, instalá-lo em outros projetos será algo parecido@myorg/js-lib: 1.0.0
.fonte
Jenkinsfile
, suponho que você pode simplesmente adicionar os comandos acima (comonpm login ...
) ao seuJenkinsfile
, em uma etapa de pré-construção. Isso também pressupõe que você tenha Jenkins autenticado com algum tipo de usuário em sua organização do GitHub que tenha os privilégios corretos para obter pacotes da sua organização. Dito isto, ainda não o implementei para nossas caixas Jenkins, mas informarei quando o fizer (se variar do que mencionei)."@myorg:registry" "https://npm.pkg.github.com/myorg"
vez de"@myorg:registry" "https://npm.pkg.github.com"
. Estranho que esse mesmo URL funcionou bem no meu.npmrc
/myorg
final da sua conta.npmrc
e o GitHub Package Registry funcionará com fio ou npm. (Sem necessidade de separar.yarnrc
.)Como não sou especialista em npm / yarn, talvez esteja entendendo mal o que está acontecendo aqui, mas acho que o proxy de pacote do registro npm ainda não funciona com o yarn. Isso poderia estar relacionado? Quando o proxy do pacote foi lançado para o npm, lembro-me de ler comentários no Twitter de pessoas que tentaram com fios e não funcionaram.
Encontre o tópico do Twitter aqui: https://twitter.com/github/status/1171832034580451328
fonte
O problema que tive é um pouco diferente.
Depois de tentar o que John sugeriu, ainda não consigo adicionar pacotes de registro privados
yarn
(mas perfeitamente bemnpm
)Então eu percebo duas coisas:
Para pacotes do GitHub, tudo
npm
bem comregistry=https://npm.pkg.github.com/my-org
ou
@my-org:registry=https://npm.pkg.github.com
mas
yarn
permita apenas a última sintaxe.Os documentos do site Github mostram apenas a primeira sintaxe que pode causar problemas para os usuários do yarn.
Outra coisa é que, se você
npm login
acessar o registro privado, mas usar um.yarnrc
arquivo em seu projeto, o fio não poderá realmente misturar suasnpm
credenciais. Embora pareça se comportar de maneira diferente em ambientes diferentes.Mas parece ser uma prática recomendada manter
yarn login
+.yarnrc
ounpm login
+.npmrc
(você ainda pode usar o yarn para gerenciar seus pacotes nos dois casos)fonte