o npm (Node Package Manager) é o maior repositório de código do mundo. Desenvolvedores de todos os continentes utilizam esta plataforma para compartilhar seus pacotes e módulos javascript. Você já imaginou como seria usar o Node.js sem Express, Next.js ou Mongoose? Difícil, né?😅😅
Além de todas estas funcionalidades, o npm pode ser um grade aliado dos desenvolvedores JS iniciantes que desejam demonstrar seus conhecimentos e habilidades ao mesmo tempo em que ajuda a comunidade.
Neste tutorial, mostrarei passo-a-passo como publicar seu primeiro package npm. Para este guia, assumo que você já possuí o Node.js/NPM instalados e conhece o básico de Javascript.
Iniciando o Package
Primeiramente, devemos criar uma pasta onde ficará armazenado todo código-fonte do nosso package.
Usando sua ferramenta de linha de comando (CMD, Bash, etc.), navegue até o diretório criado anteriormente e digite o comando:
npm init
Responda as perguntas solicitadas e será gerado o package.json da sua aplicação.
ATENÇÃO: O npm não aceita que dois packages publicados possuam o mesmo nome, antes de dar um nome ao seu pacote clique aqui e pesquise se o nome que você deseja não encontra-se em uso.
Nome escolhido, abra o diretório no seu IDE/Editor de Texto favorito e vamos começar a criar a lógica do seu package.
Programando o Package
Para este exemplo, criarei um package que torna maiúscula a primeira letra de cada palavra em uma string.
Dentro do diretório do projeto, crie um arquivo index.js e cole o seguinte código:
function capitalizeString(str){
str = str.split(" ");
for (var i = 0, x = str.length; i < x; i++) {
str[i] = str[i][0].toUpperCase() + str[i].substr(1);
}
return str.join(" ");
}
module.exports = { capitalizeString }
O código acima é tudo que precisamos para resolver o problema proposto anteriormente, a função capitalizeString()
recebe uma string e retorna outra com as inciais de cada palavra em maiúscula.
Outro arquivo necessário é o Readme.md. Neste arquivo, escrito utilizando markdow, devem ser colocados todos os dados de apresentação do seu pacote, uma breve descrição, exemplo de uso, informações adicionais relevantes, etc. O NPM utilizará este arquivo na página de apresentação do seu package online.
Para este projeto usarei o seguinte Readme.md:
# Koala-String-Capitalize
NPM Package to Capitalize the First Letter of Each Word of a String. For educational Purposes.
## Instalation
`` ` npm i koala-string-capitalize ` ``
## Usage
`` `
const ksc = require('koala-string-capitalize')
console.log(ksc.capitalizeString("hello world!")) // "Hello World!"
`` `
Com esta parte pronta, já podemos realizar as ultimas configurações para publicar nosso pacote.
Cadastrando-se no npmjs.com
Para publicar seu pacote, é necessário possuir cadastro no https://www.npmjs.com/. Registre-se, clicando aqui e confirme sua conta pelo link que será enviado para o seu email.
Publicando o Package
Após verificar sua conta, navegue na linha de comando até o diretório do seu projeto e digite npm login
. Serão solicitados o nome de usuário, senha e e-mail cadastrados no passo anterior.
Finalmente, digite npm publish
e pronto.😅
Se tudo der certo, você terá o seguinte retorno:
$ npm publish
npm notice
npm notice package: koala-string-capitalize@1.0.0
npm notice === Tarball Contents ===
npm notice 1.1kB LICENSE
npm notice 245B index.js
npm notice 643B package.json
npm notice 327B README.md
npm notice === Tarball Details ===
npm notice name: koala-string-capitalize
npm notice version: 1.0.0
npm notice package size: 1.4 kB
npm notice unpacked size: 2.3 kB
npm notice shasum: a3e7a65aad3cd92b88d4b7281895883d033123e2
npm notice integrity: sha512-G4zCTirrCMf3p[...]qfDrUIDc/asMw==
npm notice total files: 4
npm notice
+ koala-string-capitalize@1.0.0
Acesse sua conta no https://www.npmjs.com/ e lá estará seu pacote público para programadores do mundo inteiro.
Para ver a minha versão deste package, clique aqui.
Conclusão
Parabéns, você acaba de publicar seu primeiro pacote npm. Caso você tenha alguma dúvida ou comentário sobre o conteúdo acima, por favor, deixe nos comentários que estarei respondendo o mais breve possível.
Obrigado e até a próxima! 🖖🖖✌✌
Top comments (0)