{"id":14073,"date":"2024-06-29T19:26:56","date_gmt":"2024-06-29T22:26:56","guid":{"rendered":"https:\/\/www.homehost.com.br\/blog\/?p=14073"},"modified":"2024-06-29T19:27:02","modified_gmt":"2024-06-29T22:27:02","slug":"pnpm","status":"publish","type":"post","link":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/","title":{"rendered":"Conhecendo o pnpm, um gerenciador de pacotes"},"content":{"rendered":"\n<p>Bem-vindo ao mundo do<strong> pnpm, um gerenciador de pacotes que facilita a maneira como desenvolvedores lidam com depend\u00eancias em projetos JavaScript e TypeScript.&nbsp;<\/strong><\/p>\n\n\n\n<p>Neste artigo, vamos explorar <strong>como o pnpm se destaca<\/strong> por sua efici\u00eancia excepcional e rapidez na instala\u00e7\u00e3o de pacotes, representando uma alternativa robusta ao npm tradicional e ao Yarn.&nbsp;<\/p>\n\n\n\n<p>Aprofundaremos nas <strong>vantagens significativas<\/strong> que ele oferece, como o uso inteligente de espa\u00e7o em disco ao armazenar apenas uma c\u00f3pia de cada vers\u00e3o de pacote, economizando recursos valiosos.&nbsp;<\/p>\n\n\n\n<p>Al\u00e9m disso, discutiremos <strong>como integrar o pnpm em diversos ambientes de desenvolvimento<\/strong>, desde ambientes locais at\u00e9 pipelines de CI\/CD. A abordagem compartilhada de armazenamento do pnpm n\u00e3o apenas acelera o tempo de build, mas tamb\u00e9m <strong>fortalece a seguran\u00e7a e a manuten\u00e7\u00e3o de c\u00f3digo.&nbsp;<\/strong><\/p>\n\n\n\n<p>Assim, vamos \u00e0 leitura para descobrir como essa ferramenta pode transformar a experi\u00eancia de desenvolvimento e oferecer seguran\u00e7a.<\/p>\n\n\n\n<p><code><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Conte\u00fado<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#O_que_e_o_pnpm\" title=\"O que \u00e9 o pnpm?\">O que \u00e9 o pnpm?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Como_utilizar_pnpm\" title=\"Como utilizar pnpm\">Como utilizar pnpm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Comandos_basicos\" title=\"Comandos b\u00e1sicos\">Comandos b\u00e1sicos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Por_que_utilizar_o_pnpm\" title=\"Por que utilizar o pnpm?\">Por que utilizar o pnpm?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Alternativas_ao_pnpm\" title=\"Alternativas ao pnpm\">Alternativas ao pnpm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Comparativo_de_desempenho\" title=\"Comparativo de desempenho\">Comparativo de desempenho<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Integracao_com_CICD\" title=\"Integra\u00e7\u00e3o com CI\/CD\">Integra\u00e7\u00e3o com CI\/CD<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Seguranca_e_manutencao\" title=\"Seguran\u00e7a e manuten\u00e7\u00e3o\">Seguran\u00e7a e manuten\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#Conclusao\" title=\"Conclus\u00e3o\">Conclus\u00e3o<\/a><\/li><\/ul><\/nav><\/div>\n<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_que_e_o_pnpm\"><\/span>O que \u00e9 o pnpm?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>O pnpm \u00e9 um gerenciador de pacotes para <a href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/tipos-de-funcoes-javascript\/\">JavaScript<\/a> e TypeScript<\/strong>, projetado para ser uma alternativa mais eficiente e r\u00e1pida ao npm e Yarn. O nome &#8220;pnpm&#8221; significa &#8220;performant npm&#8221;, destacando seu foco em desempenho superior.\u00a0<\/p>\n\n\n\n<p>A<strong> principal vantagem do pnpm<\/strong> \u00e9 seu uso eficiente de espa\u00e7o em disco e a velocidade na instala\u00e7\u00e3o de depend\u00eancias. Ele armazena apenas uma c\u00f3pia de cada vers\u00e3o de um pacote, assim, economizando espa\u00e7o e evitando duplica\u00e7\u00f5es desnecess\u00e1rias.<\/p>\n\n\n\n<div class=\"wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained\" style=\"background-color:#ff6a0038\">\n<p><strong><em>NPM:<\/em><\/strong> gerenciador de pacotes principal para o Node.js, usado para compartilhar e reutilizar c\u00f3digo. Ele armazena v\u00e1rias c\u00f3pias de pacotes, o que pode ocupar muito espa\u00e7o em disco quando muitos projetos usam as mesmas vers\u00f5es.<\/p>\n\n\n\n<p><strong><em>Yarn:<\/em><\/strong> alternativa ao npm, criada pelo Facebook para resolver problemas como a velocidade de instala\u00e7\u00e3o e a consist\u00eancia das opera\u00e7\u00f5es. Ele introduziu o lockfile para garantir que a instala\u00e7\u00e3o em diversos ambientes das vers\u00f5es corretas dos pacotes.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_utilizar_pnpm\"><\/span>Como utilizar pnpm<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Para instalar o pnpm,<\/strong> n\u00f3s vamos demonstrar como fazer a instala\u00e7\u00e3o utilizando o npm, mas existem v\u00e1rios outros m\u00e9todos de instala\u00e7\u00e3o. Por exemplo:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc3b\">Utilizando o npm no terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>npm install -g pnpm<\/code><\/code><\/pre>\n\n\n\n<p>Ap\u00f3s a instala\u00e7\u00e3o, em um novo terminal, voc\u00ea pode verificar a correta instala\u00e7\u00e3o do pnpm executando o comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm --version<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comandos_basicos\"><\/span>Comandos b\u00e1sicos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc38\"><strong>Inicializar um projeto<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm init<\/code><\/code><\/pre>\n\n\n\n<p>Cria um arquivo <strong><code>package.json<\/code><\/strong> para o seu projeto.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc38\"><strong>Instalar as depend\u00eancias<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm install<\/code><\/code><\/pre>\n\n\n\n<p>Este comando instala todas as depend\u00eancias listadas no arquivo <strong><code>package.json<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc3d\"><strong>Adicionar uma depend\u00eancia<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm add &lt;nome-do-pacote&gt;<\/code><\/code><\/pre>\n\n\n\n<p>Para adicionar uma depend\u00eancia espec\u00edfica, substitua <strong><code>&lt;nome-do-pacote&gt;<\/code><\/strong> pelo nome do pacote desejado.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc38\"><strong>Remover uma depend\u00eancia<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm remove &lt;nome-do-pacote&gt;<\/code><\/code><\/pre>\n\n\n\n<p>Isso remove a depend\u00eancia especificada do seu projeto, substitua <strong><code>&lt;nome-do-pacote&gt;<\/code><\/strong> pelo pacote desejado.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc3b\"><strong>Atualizar depend\u00eancias<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm update<\/code><\/code><\/pre>\n\n\n\n<p>Este comando atualiza todas as depend\u00eancias para suas vers\u00f5es mais recentes, de acordo com os intervalos de vers\u00e3o especificados no <strong><code>package.json<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#8dd2fc3b\"><strong>Executar um script<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pnpm run &lt;nome-do-script&gt;<\/code><\/code><\/pre>\n\n\n\n<p>Para executar scripts definidos na se\u00e7\u00e3o <strong><code>\"scripts\"<\/code><\/strong> do<strong><code> package.json<\/code><\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Por_que_utilizar_o_pnpm\"><\/span>Por que utilizar o pnpm?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Economia de espa\u00e7o em disco: <\/strong>o pnpm utiliza um armazenamento global para pacotes, o que significa que cada vers\u00e3o de um pacote \u00e9 baixada apenas uma vez. Se m\u00faltiplos projetos utilizam a mesma vers\u00e3o de um pacote, eles compartilham a mesma instala\u00e7\u00e3o, economizando espa\u00e7o em disco;<\/li>\n\n\n\n<li><strong>Velocidade:<\/strong> o pnpm \u00e9 mais r\u00e1pido na instala\u00e7\u00e3o de depend\u00eancias devido ao seu m\u00e9todo de armazenamento. Ele n\u00e3o precisa copiar pacotes para cada projeto, o que reduz significativamente o tempo de instala\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Alternativas_ao_pnpm\"><\/span>Alternativas ao pnpm<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Embora o pnpm seja uma excelente op\u00e7\u00e3o devido \u00e0 sua velocidade e economia de espa\u00e7o, voc\u00ea tamb\u00e9m pode considerar o uso do npm ou do Yarn, que s\u00e3o alternativas mais amplamente utilizadas no mercado, e com uma curva de aprendizado mais facilitada.<\/p>\n\n\n\n<p><strong>O npm e o <a href=\"https:\/\/yarnpkg.com\/getting-started\">Yarn<\/a> s\u00e3o adequados para uma ampla variedade de projetos<\/strong>, desde pequenos aplicativos at\u00e9 grandes sistemas distribu\u00eddos. Eles s\u00e3o usados por programadores de todos os n\u00edveis, desde iniciantes at\u00e9 desenvolvedores experientes.\u00a0<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ff6a003b\"><strong>A escolha entre npm e Yarn<\/strong> muitas vezes depende das prefer\u00eancias pessoais e das necessidades espec\u00edficas do projeto.<\/p>\n\n\n\n<p><strong>Para utilizar o npm ou o Yarn<\/strong>, \u00e9 importante entender os conceitos b\u00e1sicos de gerenciamento de depend\u00eancias em JavaScript\/Node.js, por exemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instala\u00e7\u00e3o:<\/strong> como instalar o npm ou o Yarn no seu sistema;<\/li>\n\n\n\n<li><strong>Comandos b\u00e1sicos:<\/strong> aprender comandos como <strong><code>npm install, npm update, npm uninstall<\/code><\/strong> (ou seus equivalentes no Yarn);<\/li>\n\n\n\n<li><strong>Arquivos de configura\u00e7\u00e3o: <\/strong>entender como funcionam os arquivos <strong><code>package.json<\/code><\/strong> (para npm) e <strong><code>yarn.lock<\/code><\/strong> (para Yarn);<\/li>\n\n\n\n<li><strong>Versionamento de pacotes:<\/strong> compreender como especificar e gerenciar vers\u00f5es de pacotes em um projeto.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comparativo_de_desempenho\"><\/span>Comparativo de desempenho<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>O pnpm utiliza uma abordagem de armazenamento em disco mais eficiente, compartilhando depend\u00eancias entre projetos, o que reduz o uso de espa\u00e7o e acelera a instala\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p>Em benchmarks,<strong> o pnpm frequentemente supera o npm em velocidade de instala\u00e7\u00e3o e consumo de mem\u00f3ria<\/strong>, especialmente em projetos grandes.&nbsp;<\/p>\n\n\n\n<p>O npm, embora amplamente utilizado e bem suportado, <strong>pode ser mais lento e consumir mais espa\u00e7o<\/strong> em disco devido \u00e0 sua estrutura de armazenamento em \u00e1rvore.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ff6a0038\"><strong><a href=\"https:\/\/pt.wikipedia.org\/wiki\/%C3%81rvore_(estrutura_de_dados)\"><em>Armazenamento em \u00e1rvore<\/em><\/a>: <\/strong>armazena os dados em uma estrutura de dados chamada \u00e1rvore, que \u00e9 composta por n\u00f3s que possuem ponteiros para outros n\u00f3s, juntamente com o dado a ser guardado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Integracao_com_CICD\"><\/span>Integra\u00e7\u00e3o com CI\/CD<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A<strong> integra\u00e7\u00e3o do pnpm com CI\/CD<\/strong> \u00e9 f\u00e1cil por causa da maneira eficiente como ele gerencia pacotes e suporta fluxos de trabalho cont\u00ednuos de integra\u00e7\u00e3o e entrega.&nbsp;<\/p>\n\n\n\n<p>O pnpm usa um <strong>espa\u00e7o de armazenamento compartilhado<\/strong>, o que reduz o tempo de constru\u00e7\u00e3o e economiza espa\u00e7o no disco. Isso \u00e9 \u00f3timo em ambientes de CI\/CD, onde rapidez e efici\u00eancia s\u00e3o essenciais.<\/p>\n\n\n\n<p><strong>Ao usar o pnpm em pipelines de CI\/CD,<\/strong> os desenvolvedores podem aproveitar sua habilidade de resolver e instalar depend\u00eancias rapidamente, o que ajuda a otimizar o tempo de build.&nbsp;<\/p>\n\n\n\n<p>O pnpm \u00e9 compat\u00edvel com ferramentas populares de CI\/CD, como <strong>Jenkins, GitLab CI\/CD, GitHub Actions<\/strong>, entre outras, porque ele suporta naturalmente os scripts npm padr\u00e3o.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ff6a003b\"><strong><em>Espa\u00e7o de armazenamento compartilhado<\/em><\/strong><strong>:<\/strong> basicamente, os pacotes instalados s\u00e3o guardados em um local da m\u00e1quina que \u00e9 p\u00fablico para os projetos que precisam utiliz\u00e1-los, assim, n\u00e3o \u00e9 necess\u00e1rio que exista uma c\u00f3pia do pacote em cada projeto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Seguranca_e_manutencao\"><\/span>Seguran\u00e7a e manuten\u00e7\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>O pnpm possui funcionalidades de seguran\u00e7a, <strong>incluindo a verifica\u00e7\u00e3o de integridade e a autentica\u00e7\u00e3o de dois fatores.<\/strong> Al\u00e9m disso, o pnpm adota um cache global para <a href=\"https:\/\/learn.microsoft.com\/pt-pt\/dotnet\/core\/deploying\/runtime-store\" target=\"_blank\" rel=\"noreferrer noopener\">armazenar os pacotes<\/a>, o que ajuda a diminuir a \u00e1rea vulner\u00e1vel a poss\u00edveis ataques.&nbsp;<\/p>\n\n\n\n<p>Com uma forte base de desenvolvedores e contribuidores que constantemente resolvem bugs, devs n\u00e3o precisam se assustar com vulnerabilidades ou pouca documenta\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusao\"><\/span>Conclus\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Nesse artigo, voc\u00ea descobriu mais sobre o pnpm, um gerenciador de pacotes \u00e1gil e eficiente para projetos em JavaScript e TypeScript. Ele se destaca por <strong>economizar espa\u00e7o no seu disco r\u00edgido<\/strong> ao armazenar apenas uma c\u00f3pia de cada vers\u00e3o de pacote, o que \u00e9 <strong>\u00f3timo para projetos com muitas depend\u00eancias em comum<\/strong>.<\/p>\n\n\n\n<p>Comparando com o <strong>npm e o Yarn<\/strong>, duas op\u00e7\u00f5es mais conhecidas, voc\u00ea viu que cada um tem suas peculiaridades. O npm \u00e9 bem difundido e tem bastante suporte, mas pode consumir mais espa\u00e7o devido \u00e0 duplica\u00e7\u00e3o de pacotes.&nbsp;<\/p>\n\n\n\n<p>Enquanto isso, o <strong>Yarn<\/strong> trouxe o lockfile para garantir instala\u00e7\u00f5es consistentes de pacotes em diferentes ambientes.<\/p>\n\n\n\n<p>Para expandir seus conhecimentos, vale a pena conferir <strong>benchmarks de desempenho entre pnpm, npm e Yarn<\/strong> para entender melhor em quais situa\u00e7\u00f5es cada um se destaca.&nbsp;<\/p>\n\n\n\n<p>Tamb\u00e9m \u00e9 interessante <strong>explorar como integrar o pnpm em setups mais complexos<\/strong>, como em processos de integra\u00e7\u00e3o cont\u00ednua e entrega cont\u00ednua (CI\/CD). Isso inclui <strong>aprender a configurar scripts e workflows<\/strong> para otimizar o tempo de build e manter a estabilidade do c\u00f3digo em produ\u00e7\u00e3o.<\/p>\n\n\n\n<p>Al\u00e9m disso, entender boas pr\u00e1ticas de seguran\u00e7a no gerenciamento de pacotes, como verifica\u00e7\u00e3o de integridade e autentica\u00e7\u00e3o de dois fatores, pode ser crucial para proteger seus projetos contra vulnerabilidades.<\/p>\n\n\n\n<p>Em resumo, ao explorar o pnpm e suas alternativas, voc\u00ea n\u00e3o s\u00f3 aumenta seu conhecimento em ferramentas de desenvolvimento, mas tamb\u00e9m adquire habilidades essenciais para melhorar a efici\u00eancia e a seguran\u00e7a dos seus projetos de software.<\/p>\n\n\n\n<p>Considere ler mais conte\u00fados como esse em nosso <a href=\"https:\/\/www.homehost.com.br\/blog\/\">blog<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bem-vindo ao mundo do pnpm, um gerenciador de pacotes que facilita a maneira como desenvolvedores lidam com depend\u00eancias em projetos JavaScript e TypeScript.&nbsp; Neste artigo, vamos explorar como o pnpm se destaca por sua efici\u00eancia excepcional e rapidez na instala\u00e7\u00e3o de pacotes, representando uma alternativa robusta ao npm tradicional e ao Yarn.&nbsp; Aprofundaremos nas vantagens [&hellip;]<\/p>\n","protected":false},"author":31,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6585],"tags":[],"class_list":["post-14073","post","type-post","status-publish","format-standard","hentry","category-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Conhecendo o pnpm, um gerenciador de pacotes | Homehost<\/title>\n<meta name=\"description\" content=\"Saiba tudo sobre o pnpm, um gerenciador de pacotes para JavaScript e TypeScript, conhecido por sua efici\u00eancia e velocidade.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conhecendo o pnpm, um gerenciador de pacotes | Homehost\" \/>\n<meta property=\"og:description\" content=\"Saiba tudo sobre o pnpm, um gerenciador de pacotes para JavaScript e TypeScript, conhecido por sua efici\u00eancia e velocidade.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/\" \/>\n<meta property=\"og:site_name\" content=\"Homehost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Homehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-29T22:26:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-29T22:27:02+00:00\" \/>\n<meta name=\"author\" content=\"Daiana S\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Homehost\" \/>\n<meta name=\"twitter:site\" content=\"@Homehost\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daiana S\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/\",\"name\":\"Conhecendo o pnpm, um gerenciador de pacotes | Homehost\",\"isPartOf\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\"},\"datePublished\":\"2024-06-29T22:26:56+00:00\",\"dateModified\":\"2024-06-29T22:27:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689\"},\"description\":\"Saiba tudo sobre o pnpm, um gerenciador de pacotes para JavaScript e TypeScript, conhecido por sua efici\u00eancia e velocidade.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.homehost.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conhecendo o pnpm, um gerenciador de pacotes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/\",\"name\":\"Homehost\",\"description\":\"Hospedagem De Sites\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689\",\"name\":\"Daiana S\",\"description\":\"Graduada em Letras pelo Instituto Federal da Para\u00edba e especializada em reda\u00e7\u00e3o geral. Gosto de escrever sobre tudo e me dedico em v\u00e1rios n\u00edveis de expressividade. No geral, todos os meus hobbies giram em torno de escrever alguma coisa e fazer isso bem. Contato: daiana.blog@homehost.com.br\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conhecendo o pnpm, um gerenciador de pacotes | Homehost","description":"Saiba tudo sobre o pnpm, um gerenciador de pacotes para JavaScript e TypeScript, conhecido por sua efici\u00eancia e velocidade.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/","og_locale":"pt_BR","og_type":"article","og_title":"Conhecendo o pnpm, um gerenciador de pacotes | Homehost","og_description":"Saiba tudo sobre o pnpm, um gerenciador de pacotes para JavaScript e TypeScript, conhecido por sua efici\u00eancia e velocidade.","og_url":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/","og_site_name":"Homehost","article_publisher":"https:\/\/www.facebook.com\/Homehost\/","article_published_time":"2024-06-29T22:26:56+00:00","article_modified_time":"2024-06-29T22:27:02+00:00","author":"Daiana S","twitter_card":"summary_large_image","twitter_creator":"@Homehost","twitter_site":"@Homehost","twitter_misc":{"Escrito por":"Daiana S","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/","url":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/","name":"Conhecendo o pnpm, um gerenciador de pacotes | Homehost","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/#website"},"datePublished":"2024-06-29T22:26:56+00:00","dateModified":"2024-06-29T22:27:02+00:00","author":{"@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689"},"description":"Saiba tudo sobre o pnpm, um gerenciador de pacotes para JavaScript e TypeScript, conhecido por sua efici\u00eancia e velocidade.","breadcrumb":{"@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.homehost.com.br\/blog\/javascript\/pnpm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.homehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Conhecendo o pnpm, um gerenciador de pacotes"}]},{"@type":"WebSite","@id":"https:\/\/www.homehost.com.br\/blog\/#website","url":"https:\/\/www.homehost.com.br\/blog\/","name":"Homehost","description":"Hospedagem De Sites","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/eb90cb369d7098d6d85fa96c78ea1689","name":"Daiana S","description":"Graduada em Letras pelo Instituto Federal da Para\u00edba e especializada em reda\u00e7\u00e3o geral. Gosto de escrever sobre tudo e me dedico em v\u00e1rios n\u00edveis de expressividade. No geral, todos os meus hobbies giram em torno de escrever alguma coisa e fazer isso bem. Contato: daiana.blog@homehost.com.br"}]}},"modified_by":"ad_hmhst","jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/14073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=14073"}],"version-history":[{"count":2,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/14073\/revisions"}],"predecessor-version":[{"id":14087,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/14073\/revisions\/14087"}],"wp:attachment":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=14073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=14073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=14073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}