Atualmente Trabalho Com JavaScript E Node.js Ems Emma Grande Operadora Daqui Do Brasil E Muitas de Nossas Soluções Não Podem Estar Públicas Na Internet Por Questões de Segurança.
Нет Projeto que Trabalho TemoS o Костюм De Compartilhar Módulos JavaScript Entre Microviziços Para Aumentar Nossa Prodututivide.
Isso No Levou desenvolver Muitas libs Internas, Até Então Estávamos Utilizando UM Gitlab Interno Como Repositório de Pacote Para Essas Libs, Mas o Processo de Guantança e Publicação Não Ficou Muito Bom.
POR ISSO Migramos Para o Nexus Repository Manager (Também Conhecido Como Nexus), Que É UM Gerenciador de Repositório de Código Aberto Fornecido Pelo Sonatype.
Nossa Intenção É Continuar Usando O NPM E Tudo Aquilo Que Comunidade JavaScript Pode Nos OreeCer De Open-Source. Combinando Com Nossas Libs Privadas Do Nexus, Além de Conseguir Utilizar de Maneira Decente Em Processo de Controle de Pacotes.
Neste Artigo Vamos Verum Um Resumo de Pormque Escolhemos o Nexus Como Repositório Privado, Como Configura-Ló Para FuncioSar Com O NPM E COMO Conseguir Consughir OS Pacotes Guardados No Nexus.
POR Que Não Estamos Usando OS Produtos Do NPM?
BEM, Aqui aque antra rum pouco no processo de contratação de serviço da empresa, geralmente não se contata ou comma serviços que vão boment a vomente time timo temos muitos projetos e muitos times trabalhando empresa tenta contratar o serviço para o máximo de Times Tossíveis.
No Momento Que Estou EscrEvendo Esse Artigo O NPM A Nível Enterprise Que ToDa Toda A Estrutura de Serviços que Uma Grande Corporação Precisa Está Custando Ao Mês 10 мил Dóares.
COM 10 MIL Dloleares Nosso Time de devops É Capaz de Subir Toda Infraestrutura BurniaRia, Configurar Backups Региональные могилы, Camadas de Segurança e Aninda Vai Sobrar Bastante Dinheiro Porteque O Nexus Poke Atdensss Plataformas de Programação.
SO VOCê SO UTILIZA JavaScript EM SEUS Projetos E PORE PAGAR PELOS Produtos ofereCidos Pelo NPM OU NãO TOUSUIU UM Time Time Topa Manter UMA Infraestrutura Decente Para Voce, Recomendo Optar Pelo NPM.
O mínimo que você precisa saber para просугир
O nexus vai expor para vocore umpositório «Publico» Chamado Группа
que internamente é combinação do nosso repositório privado, ou seja, Хозяин
um прокси
Para o Registro Público Do NPM.
O Proxy É Extremente Geate Se Seu Projeto Precisa Utilizar Libs Libs Open Source Que Estão Hospedadas No NPM OU EM EMAQUER OUTRO REPOSITORIO que Não Seja o Teu Nexus.
POR Padrão Semper que que a gente computism um pacote pubber Nexus Vai Crar Che Cache Para The Gente Não Точный Acessar O NPM Todo Momento Por Exemplo.
Нет Final de Nossa Configuração Teremos Seguinte Somatória Группа + прокси
E nosso Fluco de Uso Será Semper Baixar OS POCOTES DO Группа
E Fazer загружает пункт Para o Хозяин
Отказ
Нет FIM, Vamos Arregaçar UM POUCO как Mangas E Intender.
Criando Um Repositório Host
Repositórios Hospedados São OS Repositórios Verices Que Criamos Para Amarazenar Nossos Pacotes Vacotes. O que torna esses repositórios privados é a incapacidade de ler o conteúdo desses repositórios seam um authtinken. Veremos Isso Em Emmplo No Final Do Artigo.
Para Crar repositório do Tipo Хостел
VA EM Настройки => Репозиторий => Репозитории => Создать репозиторий
Отказ
Depois de Clicar EM Создать репозиторий o nexus vai nos exibir uma queetidade enorme de plataformas que gerenciam engeencias. SE для Sua Primeira VEZ USANDO NEXUS, APROVEING APORTUNIDADE PARA DAME EURMONADA Нет Que Pode Pode Teerecer.
Dessa lista vamos fobal no NPM , O PAMEIRO REPOSITORIO que Vamos Será NPM (размещено)
.
Na Tela de Criação O NEXUS VAI NOS SOLICINAR UM NOME único E EM Storage Vamos Heargar Os Nossos Artefatos.
E éso, basta clicar no botão Создать репозиторий Пара Финализар.
Criando UM Proxy E Grupo Do NPM
Volte Novamente Para Репозиторий => Репозитории => Создать репозиторий
Para Criamos UM NOVO Repositório do Tipo NPM (прокси)
.
Na tela de configuração nos vamos epecifiectar que queremos nos comunicar com o NPM нет Campo Расположение прокси adicionando url https://registry.npmjs.org
Отказ
COM OS Repositórios NPM (прокси) E NPM (прокси)
Криадос, Podemos Bewaymente Crar o NPM (группа)
.
O Fluco de Configurações éngual aos aole aome emporte on mesmo Store itilizado EM NPM (Hosted) E NPM (прокси)
.
ALÉM DISO PRECISAMOS SELECIONAR OS USURIOS OU GRUPOS QUE PODEM ACESSAR O REPOSITORIO NPM (группа)
Отказ
Enviando Palbotes Para o Nexus
Agora Que Estamos Prontos Com OS Repositórios Criados, PodeMos Configurarar Nossos Projetos.
Para Puredar UM Artefato No Nexus, Precisamos alterar o Arquivo package.json adicionando rum objeto chamado publichconfig Que Vai Guardar A URL DO NOSSO Repositório Привадо Отказ
{ "name": "@ms-ott/tools", "version": "2.0.4", "description": "Common and helpers tools to create microservices APIs", "main": "src/index.js", "publishConfig": { "registry": "https://meu.dominio.com/repository/npm-private/" }, "scripts": { "lint": "eslint \"{src,apps,libs,test}/**/*.js\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage" }, "devDependencies": { "eslint": "^5.16.0", "eslint-plugin-import": "^2.16.0", "eslint-plugin-prettier": "^3.0.1", "jest": "^24.7.1", "prettier": "^1.16.4" }, "dependencies": { "aws-sdk": "^2.263.1", "dotenv": "^5.0.1", "dynamoose": "^1.7.3", "joi": "^13.4.0", "jsonwebtoken": "^8.5.1", "node-cache": "^4.2.0", "restify-cors-middleware": "^1.1.1", "restify-errors": "^8.0.1", "uuid": "^3.3.3", "request": "^2.83.0", "request-ip": "^2.1.3", "winston": "^3.2.1" } }
COM O package.json Configurado, Agora Precisamos Fazer UM Войти NO NPM CLI APONTANDO O Реестр Para o nosso domínio:
NPM Логин://meu.dominio.com/Repository/npm-private/
DIGITE SEU USUARIO E SENHA DO NEXUS E PRONTO. 🧞
Agora Basta Executar O Comando: NPM публиковать
Отказ
SE TUDO DEU CERTO VOCê VAI CONSEGUR VERICARAR SUA LIB Hospedado Acessando O Repositório Privado.
Baixando Seus Pocotes Do Nexus
Agora Que PublicoS Nossa Lib Нет Nexus, Vamos Povio Polvi-La Em Automos Projetos.
Precisamos adicionar rom arquivo .npmrc Нет Projeto, Para Evitar Que Toda Pessoa Desenvoldora Управляйте Time Precise Fazer UM NPM Войти apontando o Реестр Para o Nexus.
O Arquivo .npmrc VAI GRAILAR TANTO URL DO NEXUS COMO UM AUTHTOKEN COM PERMISSãO de Acesso.
COMO BOA PRATICA, RECOMENDO que vocua usua configurado em seu nexus um usuário com permissão de somente leitura que que ser usado para um fluco de ci/cd e que vocuasa deixar o arquivo .npmrc.
PARA GERAR O AUTHTOKEN WOTO WODE USAR O Comando Abaixo:
Echo -n ‘RegistryUser: РеестрПодворчество | OpenSSL Base64.
COM O AUTHTOKEN EM M mOS, BASTA CRIR O ARQUIVO COMO NO MODEO ABAIXO:
registry=https://meu.dominio/repository/npm-group always-auth=true _auth=bWF0ZXVzLm1hbGFxdWlhczoxMjM0NTY=
Бонас: Усандо Дженкинс Com Nexus
SE VOCE ASSIM COMO ЕС, Возможность um jenkins privado e deseja que o teu fluco de publicação Seja Automatizado. O Código Abaixo Toolsui o Mínimo Burnio Para Puredar Nossas Libs Usando o jenkins.
pipeline { agent any tools{nodejs "node"} environment { REGISTRY_URL = "http://localhost:8081/repository/malaquias-npm-private/" REGISTRY_USER_EMAIL = "malaquiasdev@gmail.com" NPM_TOKEN = "bnBtdXNlcjpWbnRlaG1fMDU=" } stages { stage('Git Checkout') { steps { git 'https://gitlab.com/malaquiasdev/nexus-study.git' } } stage('Publish to Nexus') { steps { sh 'ls' sh 'echo -e "registry=${REGISTRY_URL}\nemail=${REGISTRY_USER_EMAIL}\nalways-auth=true\n_auth=${NPM_TOKEN}" >> .npmrc' sh 'npm publish' } } }
Вывод
Nesse Artigo Pincelei UM Fluxo Básico de Como Country E Paurbir Libs Privadas Usando O Nexus Resository.
Финадо …
SE VOCO GOOTOU DESSE POST, POR FUVER NãO DEIXE DE DAR UM Как E Compartilhar 😄
SE Quire Saber O que ando fazendo por ai ou Tirar Alguma Dúvida Fique Vique Voondade Para Me Procurar NAS REDES SOCIAS COMO @ Малакиаздев Отказ
Para Ler Mais пост Meus Acesse Малакиаздев | Вида, о Código e Tudo Mais Отказ
Оригинал: «https://dev.to/collabcode/publicando-pacotes-privados-do-npm-no-nexus-repository-64l»