Existe uma maneira de obter o npm para descompactar todos os módulos em node_modules? Algo como o npm reconstruir que remove todos os artefatos de construção, mas não os reconstrói?
Achei que você nunca iria perguntar. Estive verificando meu diretório node_modules no git, conforme recomendado em mikealrogers.com/posts/nodemodules-in-git.html . Quando adiciono um novo módulo ou atualizo um atual, acabo criando artefatos no git que não deveriam estar lá e precisavam limpá-los. Eu estava pensando que se eu pudesse limpá-los primeiro, o processo seria um pouco mais tranquilo.
precisa
1
Uma observação rápida: agora que o NPM suporta shrinkwrap(consulte npmjs.org/doc/shrinkwrap.html ), você pode bloquear as versões de TODAS as suas dependências (em vez de apenas as de nível superior).
31412 Michelle Michelle Tilley
2
Não ter esse recurso é uma droga para o desenvolvimento de várias plataformas também. Desenvolvemos no Mac e executamos o CI no Linux, e precisamos remover o diretório node_modules e reinstalar completamente toda vez que fazemos uma compilação no Linux, o que desperdiça uma tonelada de tempo.
JBCP 15/08/14
4
@JBCP você está fazendo errado. O que você deve fazer é instalar os módulos no packages.json(usando npm --save) e colocar o node_modulesdiretório .gitignore(se estiver usando o git ). O IC não deve puxar seus node_modules, mas executado npm install. Finalmente, se o download do registro npm demorar muito, use algo como sinopia para armazená -lo em cache.
Bojan Markovic
1
@BojanMarkovic - Você está correto, é assim que nossos projetos estão configurados agora. Meu comentário acima foi de cerca de um ano atrás. Existem alguns projetos que recomendam a instalação de node_modules no Git, mas isso definitivamente não está correto.
JBCP
Respostas:
160
Você pode simplesmente excluir o diretório node_module
Isso removeria a fonte dos node_modules e a saída compilada, portanto não responde à pergunta.
TheGecko
Se você tiver dependências ligadas com ligação npm bem que poderia eliminar estes módulos de fonte nele do diretório de origem que pode ser muito doloroso ...
cschuff
12
Eu adicionei isso ao meu package.json: "clean": "rm -rf node_modules", "reinstall": "npm run clean && npm install", "rebuild": "npm run clean && npm install && npm run build",. Parece funcionar bem.
Lucas
5
Para Windows> rd node_modules / s
Ishara Samantha
2
@Lucas você deve postar isso uma resposta, pois é o mais adequado
Joseph
57
Adicionei isso ao meu package.json:
"build":"npm build","clean":"rm -rf node_modules","reinstall":"npm run clean && npm install","rebuild":"npm run clean && npm install && npm run build",
Acho muito estranho que uma funcionalidade tão básica, que é realmente recomendada pelo npm, exija um hack. O que todo mundo faz? Apenas ignore a recomendação e use npm install?
VitalyB
5
Numa palavra não .
Em dois, ainda não .
No entanto, existe um problema em aberto para um --no-buildsinalizador npm installexecutar uma instalação sem construção, que pode ser usada para fazer o que você está pedindo.
shrinkwrap
(consulte npmjs.org/doc/shrinkwrap.html ), você pode bloquear as versões de TODAS as suas dependências (em vez de apenas as de nível superior).packages.json
(usandonpm --save
) e colocar onode_modules
diretório.gitignore
(se estiver usando o git ). O IC não deve puxar seus node_modules, mas executadonpm install
. Finalmente, se o download do registro npm demorar muito, use algo como sinopia para armazená -lo em cache.Respostas:
Você pode simplesmente excluir o diretório node_module
fonte
package.json
:"clean": "rm -rf node_modules", "reinstall": "npm run clean && npm install", "rebuild": "npm run clean && npm install && npm run build",
. Parece funcionar bem.Adicionei isso ao meu package.json:
Parece funcionar bem.
fonte
clean
deve ser definido no package.json!Você pode tirar proveito do comando 'npm cache', que baixa o pacote tarball e o descompacta no diretório npm cache.
A fonte pode então ser copiada.
Usando idéias obtidas em https://groups.google.com/forum/?fromgroups=#!topic/npm-/mwLuZZkHkfU, criei o seguinte script de nó. Sem garantias, YMMV, etc.
fonte
npm install
?Numa palavra não .
Em dois, ainda não .
No entanto, existe um problema em aberto para um
--no-build
sinalizadornpm install
executar uma instalação sem construção, que pode ser usada para fazer o que você está pedindo.Veja esta edição em aberto .
fonte
Tente https://github.com/voidcosmos/npkill
ele encontrará todos os node_modules e permitirá que você os remova.
fonte
Para ambiente Windows:
fonte
Eu adicionei algumas linhas dentro do package.json:
Se você quiser
clean
apenas você pode usar issorimraf node_modules
.fonte
Na verdade, existe um comando especial para este trabalho
Ele excluirá o
node_modules
diretório e instalará pacotes com respeito ao seupackage-lock.json
arquivoMais informações: https://docs.npmjs.com/cli/ci.html
fonte