Existe uma maneira de determinar se você possui pacotes no seu arquivo package.json que não são mais necessários?
Por exemplo, ao experimentar um pacote e depois comentar ou excluir código, mas esquecendo de desinstalá-lo, acabo com alguns pacotes que podem ser excluídos.
Qual seria uma maneira eficiente de determinar se um pacote poderia ser excluído com segurança?
node.js
dependencies
npm
Josh C
fonte
fonte
depcheck
lista todos os pacotes comounused
errados #npx depcheck
Há também um pacote chamado
npm-check
:É bastante poderoso e desenvolvido ativamente. Um de seus recursos é a verificação de dependências não utilizadas - para esta parte, ele usa o
depcheck
módulo mencionado na outra resposta.fonte
npm outdated
verifica e lista as versões atuais, desejadas e mais recentes dos pacotes. Nenhuma lista de pacotes não utilizados.Se você estiver usando um sistema operacional Unix como o OS (Linux, OSX, etc), poderá usar uma combinação de
find
eegrep
procurar instruções de solicitação que contenham o nome do seu pacote:Se você pesquisar a
require('name-of-package')
declaração inteira , lembre-se de usar o tipo correto de aspas:ou
A desvantagem é que não é totalmente automático, ou seja, não extrai os nomes dos pacotes
package.json
nem os verifica. Você precisa fazer isso para cada pacote. Comopackage.json
é apenas JSON, isso pode ser remediado escrevendo um pequeno script usadochild_process.exec
para executar este comando para cada dependência. E faça disso um módulo. E adicione-o ao repositório do NPM ...fonte
.jsx
arquivos e.ts
arquivos, etc: Dfiskeben escreveu:
Vamos automatizar a resposta da Fiskeben se, por qualquer motivo,
depcheck
não estiver funcionando corretamente! (Por exemplo, eu tentei com o Typecript e deu erros de análise desnecessários)Para análise
package.json
, podemos usar o softwarejq
. O script de shell abaixo requer um nome de diretório por onde começar.Primeiro, ele cria dois arquivos temporários onde podemos armazenar em cache nomes e arquivos de pacotes.
Começa com o
find
comando A primeira e a segunda linha fazem com que ignore as pastasnode_modules
ebuild
(ou o que você quiser). A terceira linha contém extensões permitidas, você pode adicionar mais aqui, por exemplo, arquivos JSX ou JSON.Uma função lerá tipos dependentes.
Primeiro
cat
é opackage.json
. Em seguida,jq
obtém o grupo de dependência necessário. ({} +
existe para que ele não gere um erro se, por exemplo, não houver dependências entre pares no arquivo.)Depois disso,
sed
extrai as partes entre as aspas, o nome do pacote.-n
e.../p
diz para imprimir as partes correspondentes e nada mais dajq
saída JSON de. Em seguida, lemos esta lista de nomes de pacotes em umwhile
loop.RES
é o número de ocorrências do nome do pacote entre aspas. Agora éimport
/require
...'package'
/"package"
. Ele faz o trabalho na maioria dos casos.Então, simplesmente contamos o número de linhas de resultado e depois imprimimos o resultado.
Ressalvas:
tsconfig.json
arquivos (lib
opção)grep
manualmente apenas^USED
eUNUSED
arquivos.fonte
Podemos usar o módulo npm abaixo para esta finalidade:
https://www.npmjs.com/package/npm-check-unused
fonte
muitas das respostas aqui são como encontrar itens não utilizados.
Eu queria removê-los automaticamente .
Instale este projeto de nó.
$ npm install -g typescript tslint tslint-etc
No diretório raiz, adicione um novo arquivo tslint-imports.json
{ "extends": [ "tslint-etc" ], "rules": { "no-unused-declaration": true } }
Execute isso por sua conta e risco, faça um backup :)
$ tslint --config tslint-imports.json --fix --project .
fonte
npx depcheck --json | jq '.dependencies[]' | xargs -L1 npm rm