Ir para o conteúdo do rodapé
AJUDA DO NODE

Mais bonito - NPM (Como funciona para desenvolvedores)

No desenvolvimento de software moderno, manter um estilo de código limpo e consistente é crucial para a legibilidade, colaboração e facilidade de manutenção. Ferramentas como o Prettier , que inclui declarações de tipo integradas para TypeScript, tornaram-se indispensáveis ​​nessa busca, automatizando a tarefa frequentemente tediosa de formatação de código. Neste artigo, vamos explorar as complexidades do Prettier, analisando seus recursos, benefícios, integrações e melhores práticas. Além disso, analisaremos a biblioteca IronPDF para geração de PDFs a partir de URLs de sites.

Introdução ao Prettier

O Prettier é um formatador de código com opiniões próprias que ajusta automaticamente o estilo e a formatação do seu código de acordo com regras predefinidas, como o comprimento máximo da linha. Ele oferece suporte a várias linguagens de programação, incluindo JavaScript, TypeScript, HTML, CSS, JSON e muito mais, tornando-o versátil para diferentes conjuntos de tecnologias e tipos de projeto. Originalmente desenvolvido por James Long, o Prettier ganhou grande popularidade na comunidade de desenvolvedores por seus recursos robustos e facilidade de uso.

Principais características e benefícios

  1. Estilo de código consistente: O Prettier impõe um estilo de codificação consistente em toda a sua base de código, eliminando debates sobre preferências de formatação e garantindo uniformidade na aparência do código, acelerando assim o processo de revisão de código.
  2. Formatação automática: Ao integrar-se com seu editor de código ou processo de compilação, o Prettier formata automaticamente seu código enquanto você digita ou antes dos commits, economizando tempo e esforço valiosos para os desenvolvedores. Ele pode ser configurado para ser executado ao salvar ou para ser aplicado somente em diretórios específicos.
  3. Configurabilidade: Embora o Prettier seja opinativo por padrão, ele oferece alguma configurabilidade para ajustar certas regras de formatação de acordo com os requisitos específicos do projeto.
  4. Suporte a idiomas: Oferece suporte a uma ampla variedade de linguagens e formatos de programação, garantindo compatibilidade com diversos ambientes de desenvolvimento.
  5. Qualidade do código: Uma melhor legibilidade do código leva a uma melhor compreensão e reduz a probabilidade de erros de sintaxe ou bugs causados ​​por formatação inconsistente.

Primeiros passos com o Prettier

Instalação

Para começar a usar o Prettier em seus projetos, você pode instalá-lo via NPM ou yarn:

npm install prettier --save-dev
npm install prettier --save-dev
SHELL

or

yarn add --dev prettier
yarn add --dev prettier
SHELL

Uso

  • Interface de Linha de Comando (CLI): O Prettier fornece uma ferramenta de linha de comando para formatar arquivos manualmente ou integrá-los em scripts para tarefas de formatação automatizadas.
  • Integração com editores: Estão disponíveis plugins para editores populares como Visual Studio Code, Sublime Text, Atom e outros, permitindo a formatação em tempo real enquanto você digita.
  • Git Hooks: Configure o Prettier para ser executado antes dos commits usando Git Hooks para garantir que todas as alterações de código estejam em conformidade com as regras de formatação definidas.

Integrações e Ecossistema

O Prettier integra-se perfeitamente com diversas ferramentas e fluxos de trabalho de desenvolvimento:

  • Plugins para IDE: Integra-se com IDEs e editores de texto para formatar o código instantaneamente, melhorando a produtividade do desenvolvedor e mantendo os padrões de codificação.
  • Sistemas de compilação: Incorpora-se aos pipelines de compilação e fluxos de trabalho de Integração Contínua (CI) para garantir a consistência na formatação do código em todos os projetos da equipe.
  • Controle de versão: Funciona em perfeita harmonia com sistemas de controle de versão como o Git, garantindo que o código formatado seja mantido de forma consistente durante toda a colaboração.

Melhores práticas para um visual mais bonito

  • Usar configurações padrão: Adote inicialmente as configurações padrão do Prettier para promover consistência em toda a sua base de código sem personalizações desnecessárias.
  • Controle de versões: Atualize o Prettier regularmente para aproveitar novos recursos, correções de bugs e suporte aprimorado a idiomas.
  • Configuração: Ajuste a configuração do Prettier para que esteja de acordo com as convenções específicas do projeto ou as preferências da equipe, mantendo a consistência.
  • Educar e adotar: Incentive os membros da equipe a adotarem o Prettier e os eduque sobre seus benefícios para promover uma abordagem unificada à formatação de código.

Introdução ao IronPDF

Prettier - NPM (Como Funciona Para Desenvolvedores): Figura 1 - IronPDF

IronPDF é uma biblioteca popular para geração, edição e conversão de documentos PDF. O pacote IronPDF NPM foi projetado especificamente para aplicações Node.js Aqui estão alguns recursos e detalhes importantes sobre o pacote IronPDF NPM:

Principais características

Conversão de HTML para PDF

Converta conteúdo HTML em documentos PDF sem esforço. Essa funcionalidade é particularmente útil para gerar PDFs dinâmicos a partir de conteúdo da web.

Conversão de URL para PDF

Gere PDFs diretamente a partir de URLs, permitindo capturar o conteúdo de páginas da web e salvá-los como arquivos PDF programaticamente.

Manipulação de PDF

Mescle, divida e manipule documentos PDF existentes com facilidade. O IronPDF oferece funcionalidades como anexar páginas, dividir documentos e muito mais.

Segurança de PDF

Proteja seus documentos PDF criptografando-os com senhas ou aplicando assinaturas digitais. O IronPDF oferece opções para proteger seus documentos confidenciais contra acesso não autorizado.

Saída de alta qualidade

Produza documentos PDF de alta qualidade com renderização precisa de texto, imagens e formatação. O IronPDF garante que os PDFs gerados mantenham a fidelidade ao conteúdo original.

Compatibilidade entre plataformas

O IronPDF é compatível com diversas plataformas, incluindo Windows, Linux e macOS, tornando-o adequado para uma ampla gama de ambientes de desenvolvimento.

Integração simples

Integre facilmente o IronPDF em suas aplicações Node.js usando o pacote npm. A API é bem documentada, o que facilita a incorporação de recursos de geração de PDF em seus projetos.

Instalação

Para instalar o pacote NPM do IronPDF , utilize o seguinte comando:

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
SHELL

Gere um documento PDF usando o IronPDF e o pacote NPM Prettier.

Instale as dependências: Primeiro, crie um novo projeto Next.js usando o seguinte comando, conforme descrito aqui .

npx create-next-app@latest prettier-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
npx create-next-app@latest prettier-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
SHELL

Em seguida, navegue até o diretório do seu projeto:

cd prettier-pdf
cd prettier-pdf
SHELL

Instale os pacotes necessários:

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add -D prettier
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add -D prettier
SHELL

Crie um arquivo de configuração vazio para que editores e outras ferramentas saibam que você está usando o Prettier:

node --eval "require('fs').writeFileSync('.prettierrc','{}\n')"
node --eval "require('fs').writeFileSync('.prettierrc','{}\n')"
SHELL

Crie um arquivo .prettierignore para informar ao Prettier CLI e aos editores quais arquivos não devem ser formatados. Segue um exemplo abaixo:

# Ignore artifacts:
build
coverage
# Ignore all HTML files:
**/*.html

Criar um PDF

Agora, vamos criar um exemplo simples de geração de um PDF usando o IronPDF.

API de geração de PDF: O primeiro passo é criar uma API de backend para gerar o documento PDF. Como o IronPDF só funciona no servidor, precisamos criar uma API para ser chamada quando um usuário quiser gerar um PDF. Crie um arquivo em pages/api/pdf.js e adicione o conteúdo abaixo.

O IronPDF requer uma chave de licença, que pode ser obtida na página de licenças e usada no código a seguir.

// pages/api/pdf.js

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

export default async function handler(req, res) {
  try {
    const url = req.query.url;
    const pdf = await PdfDocument.fromUrl(url);
    const data = await pdf.saveAsBuffer();

    // Configure response headers to ensure the PDF file is downloaded
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader(
      "Content-Disposition",
      "attachment; filename=awesomeIron.pdf"
    );
    res.send(data);
  } catch (error) {
    console.error("Error generating PDF:", error);
    res.status(500).end();
  }
}
// pages/api/pdf.js

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

export default async function handler(req, res) {
  try {
    const url = req.query.url;
    const pdf = await PdfDocument.fromUrl(url);
    const data = await pdf.saveAsBuffer();

    // Configure response headers to ensure the PDF file is downloaded
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader(
      "Content-Disposition",
      "attachment; filename=awesomeIron.pdf"
    );
    res.send(data);
  } catch (error) {
    console.error("Error generating PDF:", error);
    res.status(500).end();
  }
}
JAVASCRIPT

Agora modifique o código index.js para usar Prettier e IronPDF conforme mostrado abaixo.

import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";

export default function PrettierDemo() {
  const [text, setText] = useState("");

  // Function to generate PDF using the IronPDF backend API
  const generatePdf = async () => {
    try {
      const response = await fetch("/api/pdf?url=" + text);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // Handle input changes, updating the state
  const handleChange = (event) => {
    setText(event.target.value);
  };

  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo Prettier and Generate PDF Using IronPDF</h1>
        <p>
          <span>Enter Url To Convert to PDF:</span>{" "}
          <input type="text" value={text} onChange={handleChange} />
        </p>
        <button style={{margin: 20, padding: 5}} onClick={generatePdf}>
          Generate PDF
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
            Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: border-box;
        }
      `}</style>
    </div>
  );
}
import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";

export default function PrettierDemo() {
  const [text, setText] = useState("");

  // Function to generate PDF using the IronPDF backend API
  const generatePdf = async () => {
    try {
      const response = await fetch("/api/pdf?url=" + text);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // Handle input changes, updating the state
  const handleChange = (event) => {
    setText(event.target.value);
  };

  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo Prettier and Generate PDF Using IronPDF</h1>
        <p>
          <span>Enter Url To Convert to PDF:</span>{" "}
          <input type="text" value={text} onChange={handleChange} />
        </p>
        <button style={{margin: 20, padding: 5}} onClick={generatePdf}>
          Generate PDF
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
            Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: border-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

Formate o código usando o Yarn Prettier:

yarn prettier . --write
yarn prettier . --write
SHELL

Prettier - NPM (Como Funciona Para Desenvolvedores): Figura 2 - Execute o Prettier

Agora execute o aplicativo usando o comando:

yarn dev
yarn dev
SHELL

Saída

Prettier - NPM (Como Funciona Para Desenvolvedores): Figura 3 - Prettier com Saída do IronPDF

PDF

Prettier - NPM (Como Funciona Para Desenvolvedores): Figura 4 - Saída PDF

Licença IronPDF

O pacote IronPDF do npm funciona com uma chave de licença. O IronPDF oferece uma chave de licença de avaliação gratuita para permitir que os usuários experimentem seus recursos antes de efetuar a compra.

Insira a chave de licença no seguinte espaço reservado:

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JAVASCRIPT

Conclusão

O Prettier se destaca como uma ferramenta fundamental no desenvolvimento de software moderno, simplificando a formatação de código com precisão e eficiência. Sua capacidade de impor estilos de codificação consistentes em diferentes linguagens e de se integrar perfeitamente aos fluxos de trabalho existentes o torna indispensável para equipes que buscam bases de código limpas e de fácil manutenção. Ao automatizar tarefas de formatação de código, o Prettier permite que os desenvolvedores se concentrem mais na escrita de código de qualidade e menos em detalhes estilísticos, aumentando, em última análise, a produtividade e a colaboração em projetos de software. Adote o Prettier para elevar a qualidade do estilo do seu código e agilizar seu processo de desenvolvimento hoje mesmo.

O IronPDF permite que desenvolvedores Node.js aprimorem os recursos de manipulação de PDFs em seus aplicativos, oferecendo funcionalidade, confiabilidade e desempenho incomparáveis. Ao aproveitar os recursos avançados do IronPDF para geração, conversão e manipulação de PDFs, os desenvolvedores podem otimizar os fluxos de trabalho de documentos, aprimorar a experiência do usuário e atender com confiança a diversas necessidades de negócios. Adote o IronPDF para desbloquear todo o potencial do processamento de PDFs em seus projetos Node.js e ofereça soluções de documentos de nível profissional sem esforço.

Darrius Serrant
Engenheiro de Software Full Stack (WebOps)

Darrius Serrant é bacharel em Ciência da Computação pela Universidade de Miami e trabalha como Engenheiro de Marketing WebOps Full Stack na Iron Software. Atraído por programação desde jovem, ele via a computação como algo misterioso e acessível ao mesmo tempo, tornando-a o meio ...

Leia mais

Equipe de Suporte Iron

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim