The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2018-12-27
Desenvolvimento de software

Primeiros socorros para dependências JavaScript avariadas

Daniel Grek

Se é um programador de software, provavelmente já sabe que uma das suas muitas funções não é, definitivamente, ser mais um inventor de rodas. Pelo menos, não na maioria dos casos.

Gostaria de escrever sobre JavaScript dependências. Mas vamos começar pelo princípio. Se é um programador de software, provavelmente já sabe que uma das suas muitas funções não é, definitivamente, ser mais um inventor de rodas. Pelo menos, não na maioria dos casos. O mundo já avançou o suficiente para dizer que atualmente existem pacotes para quase tudo, tornando o nosso desenvolvimento mais fácil e eficiente.

É claro que isto não é um incentivo para perder o interesse noutras questões - cada pacote tem um espaço bastante grande para melhorar e evoluir. No entanto, o seu objetivo comercial é oferecer um serviço completo de produto num prato mesmo a tempo ou mesmo antes de estar pronto. Os pacotes ajudá-lo-ão a cumprir esses planos, trazendo npm ou fio no topo da lista dos seus melhores amigos, mas atenção: qualquer solução, tal como esta, também pode trazer riscos. Vamos tentar descrevê-lo e mostrar-lhe uma melhor forma de o evitar no artigo que se segue.

Vamos começar com uma história...

Imagine um grande JavaScript projeto. Os requisitos comerciais obrigam os programadores a utilizar um pacote específico, permitindo uma integração adequada com outro sistema de um cliente. E isso é perfeitamente correto. MVP foi entregue atempadamente, o contrato seguinte foi assinado e o desenvolvimento prossegue. O cliente pede para integrar a parte seguinte de um sistema, o que requer a atualização do seu pacote.

Esta parte corre bem, até que os testes são efectuados. Parece que o pacote contém um bug simples, mas inconveniente, que ainda não foi corrigido em nenhuma versão do produto e sabe-se que isso não acontecerá tão cedo. Não se pode simplesmente corrigir o módulos_nó diretório - ele deve ser removido do seu repositório de rastreamento, portanto seus colaboradores nunca saberão nada sobre suas mudanças! Bem, enquanto estava a ler isto, provavelmente já percebeu o que fazer - fork. Mas será que precisa mesmo de um martelo destes?

Compreender o seu problema

Deve ter em atenção se o problema com que se depara vai envolver apenas o utilizador ou uma comunidade maior. Por vezes, as pessoas interpretam a falta de uma determinada funcionalidade como um erro, o que nem sempre é correto. Por conseguinte, a sua solução pode não ser aceite por uma comunidade e não ser incluída num repositório oficial. No entanto, continua a precisar dele aqui e agora. Então, vamos remendá-lo!

De acordo com as notas de lançamento do repositório github, o patch-package ) foi lançado oficialmente em maio de 2017. It é uma ferramenta poderosa, que permite que as modificações dentro do projeto de dependência sejam instaladas no seu módulos_nó diretório. Alguns poderão dizer que isto é uma loucura - ao disparar o comando de instalação, o seu gestor de dependências irá substituir as alterações.

Bem, isto está correto. No entanto, um patch-package coexiste com npm e fio perfeitamente (devo admitir que funciona um pouco melhor com o npm até agora, pode ler mais na secção "Porque deve usar o postinstall-prepare com o Yarn?" do ficheiro README) e tira o máximo partido de uma preparação de script ("script": { "prepare":""}) do seu package.json ficheiro. O patch-package cria literalmente um diretório de diferenças entre as suas alterações e o pacote original, armazenado na pasta de patches do seu projeto atual.

Depois de executar o comando install e descarregar todas as dependências, aplica essa diferença ao diretório do projeto, fazendo uma reconstrução perfeita das suas alterações para todos os colaboradores. Torna a sua vida mais simples, não é? A solução também tem algumas desvantagens. O patch-package não pode corrigir as dependências do seu pacote ou fazer qualquer alteração no package.json.

Neste caso, pode utilizar a solução de bifurcação. Além disso, deve considerar o número de alterações que está prestes a aplicar no seu pacote de dependências e se estas irão aumentar com o tempo. No caso de irem - deve pensar cuidadosamente quando utilizar o fork, uma vez que este é um projeto seu.

Não sejas egoísta!

Patching é uma ótima maneira de corrigir suas dependências sem criar forks intermináveis e gerar múltiplos fontes de projeto. Mas deve sempre lembrar-se que tirar partido da comunidade não deve ser unidirecional. Se encontrar um erro ou sentir que pode melhorar o pacote que está a utilizar, deve sempre considerar a possibilidade de ajudar os outros, registando um problema ou mesmo contribuindo para o projeto!

Artigos relacionados

Ilustração de uma aplicação de cuidados de saúde para smartphone com um ícone de coração e um gráfico de saúde em ascensão, com o logótipo The Codest, representando soluções digitais de saúde e HealthTech.
Desenvolvimento de software

Softwares para o setor de saúde: Tipos, casos de uso

As ferramentas em que as organizações de cuidados de saúde confiam atualmente não se assemelham em nada às fichas de papel de há décadas atrás. O software de cuidados de saúde apoia agora os sistemas de saúde, os cuidados aos doentes e a prestação de cuidados de saúde modernos em...

OCODEST
Ilustração abstrata de um gráfico de barras em declínio com uma seta ascendente e uma moeda de ouro que simboliza a eficiência ou a poupança de custos. O logótipo The Codest aparece no canto superior esquerdo com o slogan "In Code We Trust" sobre um fundo cinzento claro
Desenvolvimento de software

Como dimensionar a sua equipa de desenvolvimento sem perder a qualidade do produto

Aumentar a sua equipa de desenvolvimento? Saiba como crescer sem sacrificar a qualidade do produto. Este guia cobre sinais de que é hora de escalar, estrutura da equipe, contratação, liderança e ferramentas - além de como o The Codest pode...

OCODEST
Desenvolvimento de software

Construir aplicações Web preparadas para o futuro: ideias da equipa de especialistas do The Codest

Descubra como o The Codest se destaca na criação de aplicações web escaláveis e interactivas com tecnologias de ponta, proporcionando experiências de utilizador perfeitas em todas as plataformas. Saiba como a nossa experiência impulsiona a transformação digital e o negócio...

OCODEST
Desenvolvimento de software

As 10 principais empresas de desenvolvimento de software sediadas na Letónia

Saiba mais sobre as principais empresas de desenvolvimento de software da Letónia e as suas soluções inovadoras no nosso último artigo. Descubra como estes líderes tecnológicos podem ajudar a elevar o seu negócio.

thecodest
Soluções para empresas e escalas

Fundamentos do desenvolvimento de software Java: Um Guia para Terceirizar com Sucesso

Explore este guia essencial sobre o desenvolvimento de software Java outsourcing com sucesso para aumentar a eficiência, aceder a conhecimentos especializados e impulsionar o sucesso do projeto com The Codest.

thecodest

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek cs_CZCzech pt_PTPortuguese