Questão nº 60
Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 60)
O analista Cléber está implementando um script para
automatizar o build de uma aplicação apoiada pelo npm. Para se
certificar de que, a cada novo build, o npm reinstalará todas as
dependências da aplicação sem alterar o arquivo package.json,
Cléber empregou no script de automação o recurso de instalação
limpa do npm.
Para solicitar ao npm uma instalação limpa do projeto, Cléber
utilizou no script o comando npm:
- Aci; (alternativa correta)
- Bdedupe;
- Cshrinkwrap;
- Dinstall --clear;
- Einstall --erase.
Resposta comentada
Gabarito Alternativa A
Uma "instalação limpa" no npm significa instalar as dependências de um projeto exatamente como elas foram definidas no arquivo `package-lock.json` (ou `npm-shrinkwrap.json`), garantindo que a mesma versão das dependências seja usada em todos os ambientes (desenvolvimento, teste, produção). Isso é crucial para a integração contínua (CI) e não altera o arquivo `package.json`.
(A) Correta: O comando `npm ci` (de "clean install" ou "continuous integration") é projetado para instalações limpas, removendo `node_modules` e instalando as dependências estritamente baseadas no `package-lock.json` (ou `npm-shrinkwrap.json`), sem modificar o `package.json`.
(B) Incorreta: `npm dedupe` serve para otimizar a árvore de dependências, identificando e movendo dependências comuns para um nível superior, reduzindo o tamanho total e a complexidade, mas não realiza uma instalação limpa do zero.
(C) Incorreta: `npm shrinkwrap` cria um arquivo `npm-shrinkwrap.json` que "trava" as versões das dependências, similar ao `package-lock.json`, mas não é um comando para realizar uma instalação limpa; ele cria o arquivo que permite instalações consistentes.
(D) Incorreta: Não existe um flag `--clear` para o comando `npm install` com a finalidade de realizar uma instalação limpa. Esta é a armadilha da banca, pois a palavra "clear" sugere limpeza, mas não é um comando válido ou funcional para o propósito descrito.
(E) Incorreta: Assim como `--clear`, `--erase` não é um flag válido para o comando `npm install` com a finalidade de realizar uma instalação limpa.
Fonte: FGV TRF1 2024 Técnico Judiciário - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.