
Estou tentando modificar um pacote npm com múltiplas dependências. Como tal, npm install -g .
leva muito tempo para ser executado. Tenho outras opções além de remover as dependências de packages.json?
Responder1
--não-opcionalopção agora está implementada de acordo com esta documentaçãohttps://docs.npmjs.com/cli/install:
The --no-optional argument will prevent optional dependencies from being installed.
Responder2
Se você estiver desenvolvendo isso node_module
sozinho, não perca tempo com npm install
s, em vez disso use npm link
.
Resumindo, você cria um link simbólico para a pasta do seu módulo em uma pasta global de propriedade do npm e, em seguida, na pasta do seu aplicativo você pede ao npm para usar essa pasta vinculada simbólica.
Isso faz com que as alterações feitas na pasta do módulo sejam refletidas imediatamente em seu aplicativo.
Aqui estão as etapas principais (copiadas do tutorial com link abaixo, certifique-se de ler o tutorial para dicas importantes):
- cd para
src/my_module
- Correr "
npm link
". Isto cria um link simbólico de uma pasta global para asrc/my_module
pasta. - cd para
src/my_app
- Correr
npm link my_module
. Isso vinculanode_modules/my_module
este projeto específico à pasta global, para querequire
as chamadas que procurammy_module
acabem sendo carregadas da sua pasta de desenvolvimento,src/my_module
.
Veja este tutorial:http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears
E os documentos oficiais para npm link
:https://docs.npmjs.com/cli/link
Responder3
Este recurso foi solicitado em 2010, mas infelizmente foi ignorado e encerrado:https://github.com/npm/npm/issues/340
Eu tentei várias opções e finalmente encontrei uma solução bastante simples - renomeie package.json para outra coisa antes de fazer a instalação do npm e, em seguida, reverta-o para após o término da instalação:
mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
Responder4
Olhando atravésos documentosnão parece ter uma opção além do --no-optional
switch.
Não testado/não confirmado
Este SO Q&A intitulado:npm install
instala todas as dependências do meu projeto pela rede, mesmo que já estejam instaladas ou disponíveis no cacheparece implicar que há uma --skip-installed
mudança. Mas os documentos não fazem nenhuma referência a essa mudança.