đ§ A anatomia do package.json
O que Ă© e para que serve?
Se vocĂȘ trabalha com javascript, com certeza jĂĄ ouviu falar e editou o famoso package.json. Nesse post, vou focar em mostrar algumas das funcionalidades e props disponibilizadas por esse arquivo para seu projeto.
O package.json Ă© um arquivo de um projeto javascript que Ă© responsĂĄvel por guardar informaçÔes, scripts e controle de versionamento de bibliotecas do projetos. Essas dependĂȘncias sĂŁo gerenciadas pelo NPM.
InformaçÔes sobre o projeto
VocĂȘ pode utilizar algumas propriedades do package.json para guardar informaçÔes sobre o projeto e que tambĂ©m sĂŁo Ășteis e necessĂĄrias ao publicar um pacote no NPM. VocĂȘ pode visualizar nesse link todas as propriedades reservadas do package.json.
Abaixo, um exemplo de configuraçÔes båsicas de um package.json
{
"name": "nodevader",
"version": "2.1.1",
"description": "",
"main": "index.js",
"license": "MIT"
}
A propriedade version
utiliza a notação de versionamento semùntico. Jå a propriedade main é utilizada em alguns projetos como o ponto de entrada da aplicação.
Scripts
Na sessĂŁo de scripts vocĂȘ pode declarar alguns nomes para abreviar a execução de açÔes no projeto para usar em uma palavra.
Veja abaixo um exemplo de package.json com alguns scripts com diferentes execuçÔes para ambientes desenvolvimento, homologação e produção.
{
"name": "nodevader",
"version": "2.1.1",
"description": "",
"main": "index.js",
"scripts": {
"development": "NODE_ENV=development nodemon src/index.js",
"staging": "NODE_ENV=staging pm2 start ecosystem-staging.config.js",
"production": "NODE_ENV=development pm2 start ecosystem-production.config.js",
"migrate:up": "node src/migrate.js"
},
"license": "MIT"
}
Para executar um script, basta rodar o comando no terminal npm run SCRIPT_NAME
:
npm run development
Dependencias
A principal responsabilidade do package.json Ă© controlar as versĂ”es das dependĂȘncias de pacotes do projeto. Ele Ă© declarado como um objeto com nome e versĂŁo. Ă possĂvel instalar dependĂȘncias para ambiente apenas desenvolvimento e quando o NODE_ENV
{
"name": "nodevader",
"version": "2.1.1",
"description": "",
"main": "index.js",
"scripts": {
"development": "NODE_ENV=development nodemon src/index.js",
"staging": "NODE_ENV=staging pm2 start ecosystem-staging.config.js",
"production": "NODE_ENV=development pm2 start ecosystem-production.config.js",
"migrate:up": "node src/migrate.js"
},
"dependencies": {
"axios": "^0.21.1",
"dotenv": "^8.2.0",
"express": "^4.16.4",
"winston": "^3.3.3"
},
"devDependencies": {
"chai": "^4.2.0",
"eslint": "^6.3.0",
"mocha": "^8.2.1"
},
"license": "MIT"
}
Para instalar e adicionar no package.json um dependĂȘncia de desenvolvimento:
npm install --save-dev mocha
Para instalar apenas as dependĂȘncias e ignorar as dependĂȘncias de desenvolvimento basta adicionar a flag --production
.
npm install --production
Lock de dependĂȘncias
Quando vocĂȘ executa o comando npm install
para instalar as dependĂȘncias do projeto, Ă© criado um arquivo package-lock.json que contĂ©m uma lista detalhada da ĂĄrvore de dependĂȘncias com a versĂŁo exata de cada dependĂȘncia para garantir maior precisĂŁo e velocidade no controle dos pacotes do projeto.
Recomenda-se deixar esse arquivo commitado no projeto, visto que ele sempre acompanha as alteraçÔes feitas no package.json.
Obrigado pela leitura! Espero que possa ter ajudado. đ
Até mais.