Este artigo irá guiá-lo através dos dois poderosos gerenciadores de pacotes do Node.js: npm e yarn. Espero que seja útil para você!

Curso de introdução rápida ao Node.js: entre para aprender
O primeiro passo para aprender Node é entender o gerenciador de pacotes do node : npm Acredito que todos estão familiarizados com npm , porque frequentemente o usamos para baixar alguns recursos de pacotes.
Mas como a biblioteca de recursos do npm (https://www.npmjs.com/) está no exterior, a velocidade de download de recursos usando-a é relativamente lenta, então node包管理器de terceiros, como yarn e domésticos, são sincronizados com npm armazéns. Espelho Taobao atualizado (cnpm)
A seguir aprenderemos esses conteúdos em profundidade, vamos começar!
A coluna da série Node começou a ser atualizada Siga o blogueiro, assine a coluna e aprenda Node sem se perder!
o que é npm
Antes de usar npm , você deve primeiro entender o que é npm . No primeiro artigo da coluna da série Node [Node.js | O único caminho do front-end para a pilha completa], é mencionado npm é o armazém de código aberto do Node e é o maior armazém de código aberto do mundo.
O endereço deste armazém é: https://www.npmjs.com/
Em 17 de março de 2020, npm serviu 1,3 milhão de pacotes para aproximadamente 12 milhões de desenvolvedores, que os baixaram 75 bilhões de vezes por mês
Para baixar e usar os recursos no armazém npm , você pode usar npm的指令(começando com npm , como npm i axios download axios ) ou usar outras instruções de terceiros ( Node包管理器de terceiros), como yarn, etc. .
Declaração oficial:
npmé uma ferramenta de gerenciamento e distribuição de pacotes paraNodeJSO gerenciamento de pacotes se reflete no fato de ser um warehouse
NodeJS, que armazena e gerencia diversos pacotes de softwareNodeJS.A ferramenta de distribuição consiste no uso
npm的指令para baixar pacotes no armazémnpm.
Quando configuramos o ambiente NodeJS , npm指令模块é instalado junto com NodeJS . Podemos executar npm -v através do terminal para visualizar a versão instalada:

Mas se a versão padrão instalada npm for muito antiga, você também poderá instalar e atualizar manualmente o npm :
npm i npm@mais recente -g
@latestrepresenta a instalação da versão mais recente,-grepresenta a instalação global, essas instruçõesnpmserão discutidas posteriormente.
Uma coisa mágica pode ser encontrada acima. Estamos instalando npm por meio npm . Podemos instalá-lo nós mesmos?
Na verdade, isso é fácil de entender. npm的指令模块npm é armazenado no armazém npm como um pacote, e o nome deste pacote é npm .

Então, o que geralmente chamamos de npm refere-se apenas ao módulo de comando do npm (o pacote chamado npm)
Mas, na verdade, a palavra
npmrefere-senpm指令模块e também aonpmo próprio armazém de código abertoNodeJS, então baixamosnpmemnpm(este npm representa o armazém de código aberto do NodeJS) (este npm representa o armazém aberto armazém de origem chamado npm Este pacote, este pacote é o módulo de comando do npm)
comandos comuns npm
Existem muitas instruções
npm. Aqui listamos apenas as mais usadas. Para obter mais informações, consulte a documentação oficial do npm.
: gera
npm initpackage.json
npm install : Baixe todos os recursos registrados em package.json
npm install 包名: Baixe o pacote especificado para o diretório atual
npm uninstall 包名: desinstala o pacote especificado no diretório atual
npm update 包名: Atualize o pacote especificado no diretório atual. Se nenhum nome de pacote for adicionado, todos os pacotes no diretório atual serão atualizados.
npm outdated 包名: Verifique se o pacote especificado no diretório atual está desatualizado . Se nenhum nome de pacote for adicionado, todos os pacotes no diretório atual serão verificados.
npm info 包名: Obtenha informações detalhadas sobre o pacote no diretório atual
npm list : Visualiza todos os pacotes instalados no diretório atual e suas dependências e exibe o número da versão ( list pode ser abreviada como ls )
npm list 包名: Veja o número da versão do pacote especificado instalado no diretório atual ( list pode ser abreviado como ls )
Alguns pontos adicionais:
install pode ser abreviado como i , como: npm install axios pode ser abreviado como npm i axios
uninstall pode ser abreviado como un
Adicione o símbolo @ após o nome do pacote para especificar a versão do pacote, como: npm i md5@1 baixa a versão 1 do md5, npm i md5@latest significa baixar a versão mais recente do md5
sufixo do comando npm
-g : Especifique o ambiente global
O comando
npmtem como padrão operar no diretório atual. Adicionar-gespecifica a operação no ambiente global . Como mencionado acima, instale a versão mais recente do npm globalmente:npm i npm@latest -g, para que o npm possa ser usado em qualquer diretório. .
--save pode ser abreviado como -s : especifica dependências no ambiente de produção (registradas em dependencies )
Após a versão
npm5, o padrão é--save. Por exemplo, axios precisa ser instalado tanto no ambiente de produção quanto no ambiente de desenvolvimento:npm i axios -s
--save-dev pode ser abreviado como -D : especifique as dependências no ambiente de desenvolvimento (registradas em devDependencies )
Para instalar o babel que não é necessário no ambiente de produção (usado apenas no ambiente de desenvolvimento):
npm i babel -D
--save-prod pode ser abreviado como -P : o mesmo que --save
--save-optional pode ser abreviado como -O : especifica dependências opcionais (registradas em optionalDependencies )
--no-save : não será gravado em package.json
Para as funções específicas e diferenças de
-g,--save,--save-devconsulte meu artigo: A diferença entre npm install -g/–save/–save-dev
O sufixo do comando npm também pode ser colocado na frente do nome do pacote:
npm i -g npm@latest
Gerenciamento de pacotes de dependências
No npm , as dependências conhecidas são: dependencies e devDependencies
Além disso, na verdade inclui:
peerDependencies ,
optionalDependencies
bundledDependencies / bundleDependencies
Várias dependências, incluindo estas, são registradas em package.json :

Acima mencionamos essas dependências ao falar sobre sufixos de comando npm . Aqui está uma descrição detalhada do que eles representam:
dependencies e devDependencies
Confira meu outro artigo: A diferença entre npm install -g/–save/–save-dev
peerDependencies
Você pode conferir o artigo do grandalhão: Entenda peerDependencies em um artigo
optionalDependencies
Dependências opcionais. Se houver alguns pacotes dependentes que ainda
dependenciesser executados mesmo se a instalaçãooptionalDependenciesou você quiser que o npm continue em execução, você pode usaroptionalDependencies. escreva-os em ambos os lugares.
bundledDependencies / bundleDependencies
devDependenciesde empacotamento,bundledDependenciesé um objeto de array contendo nomes de pacotes dependentes. Ao publicar, os pacotes nestedependenciesserão empacotados no pacote de lançamento final. erro.
Problemas de versão do pacote que precisam de atenção em package.json
As informações de versão de todos os pacotes baixados através npm serão registradas em package.json
Ao executar npm i ele será baixado com base nas informações do pacote registradas em package.json . Suas regras de download são as seguintes:
Quando a versão do pacote começa com ^ (padrão) , a versão grande será bloqueada
//pacote.json
"dependências": {
"md5": "^2.1.0" // } começando com ^,Através do
npm iserá instalada a versão mais recente domd52.xx(a versão mais recente nas duas versões principais), que não é necessariamente 2.1.0, mas também pode ser 2.3.0
Quando a versão do pacote começa com ~ , ela será bloqueada para a segunda versão principal
//pacote.json
"dependências": {
"md5": "~2.1.0"
},Através
npm iirei instalar a última versão domd52.1.x(a última versão abaixo da versão 2.1), que não é necessariamente 2.1.0, mas também pode ser 2.1.1
A versão do pacote é * e será bloqueada para a versão mais recente
//pacote.json
"dependências": {
"md5": "*"
},Via
npm iirei instalar a última versão domd5
Se não houver prefixo antes da versão do pacote , ele será bloqueado para a versão especificada.
//pacote.json
"dependências": {
"md5": "2.1.0"
},Via
npm iirei instalar a versão 2.1.0 domd5
Resolva o problema da velocidade lenta do npm
Como o armazém npm está no exterior, será mais lento usarmos o comando npm na China para baixar o conteúdo deste armazém estrangeiro.
Neste momento, podemos executar o seguinte comando para mudar a fonte do armazém npm para a fonte doméstica da imagem Taobao (cnpm) :
registro do conjunto de configuração npm https://registry.npmmirror.com
Use npm config get registry para visualizar a fonte atual:

Quando você usar npm no futuro, ele será baixado automaticamente do armazém espelho Taobao doméstico e a velocidade será muito rápida.
O endereço de origem anterior do espelho Taobao era http://registry.npm.taobao.org, mas agora foi alterado para http://registry.npmmirror.com Ver detalhes.
Mas será inevitavelmente um pouco problemático mudar de fonte modificando a configuração npm . Podemos instalar um nrm globalmente para nos ajudar a mudar rapidamente as fontes npm .
Use nrm para alternar rapidamente fontes npm
Instale o nrm globalmente:
npm instalar -g nrm
Execute nrm ls para visualizar fontes npm alternáveis :

Use npm use para mudar de fonte , como mudar para fonte Taobao: nrm use taobao

Use nrm test 源名para testar o tempo de resposta da fonte correspondente:

Você pode ver que a velocidade de resposta da fonte Taobao é muito mais rápida do que a fonte padrão do npm .
Espelho npm chinês: cnpm
cnpm é um espelho completo do npmjs.org, que pode ser usado no lugar da versão oficial
A frequência de sincronização entre
cnpme a versão oficial é uma vez a cada 10 minutos, site oficial do cnpm
Baixar cnpm :
npm instalar -g cnpm --registry=https://registry.npmmirror.com
cnpm é o espelho Taobao . Quando usamos a fonte do espelho Taobao acima, apenas alteramos a fonte do npm para a fonte do espelho Taobao ( cnpm ) (esta fonte na verdade se refere ao endereço do armazém) e, em seguida, usamos através dele. o comando npm .
E aqui está para baixar diretamente a imagem completa do cnpm e então você pode usar cnpm em vez do comando npm :
cnpm installcnpm e axios -g // ....
As instruções do
cnpmsão exatamente as mesmas donpm. Basta usar cnpm em vez de npm ao usá-lo.
Yarn é uma ferramenta de gerenciamento de dependências lançada pelo Facebook que é mais rápida e eficiente que npm
Instalar:
npm instalar -g fio
Atualizar fio:
versão do conjunto de fios mais recente versão do conjunto de fios das fontes
vantagem
super rápido
yarn armazena em cache cada pacote baixado para que não haja necessidade de baixá-lo novamente ao usá-lo novamente. Também utiliza downloads paralelos para maximizar a utilização de recursos, para que as instalações sejam mais rápidas
Super seguro <br/> Antes de executar o código, yarn irá verificar a integridade de cada pacote de instalação através de um algoritmo
Instruções comuns de fios

yarn init : Inicialize o projeto e gere o arquivo package.json . As etapas de geração são aproximadamente as mesmas do npm init
yarn help : exibir lista de comandos
yarn install : Baixe todos os recursos registrados em package.json , que pode ser abreviado como yarn
yarn add 包名: baixe o pacote especificado para o diretório atual
yarn remove 包名: desinstale o pacote especificado no diretório atual
yarn upgrade 包名: atualize o pacote especificado no diretório atual. Você pode adicionar @指定版本号após o nome do pacote para especificar a versão que precisa ser atualizada.
sufixo de comando yarn
--dev : Especifique dependências no ambiente de desenvolvimento ( devDependencies ), abreviado como -D
--peer : Especifique as dependências principais ( peerDependencies )
--optional : Especifique dependências opcionais ( optionalDependencies )
Este artigo apresenta npm e yarn , bem como nrm , cnpm , etc., derivados de npm
Os blogueiros têm usado uma combinação de npm + nrm para alternar fontes , porque isso não apenas garante velocidade rápida, mas também permite a troca conveniente de fontes sem a necessidade de baixar pacotes adicionais, como cnpm e yarn
Tanto npm quanto yarn têm muito conteúdo. Este artigo explica apenas o conteúdo mais comumente usado. Se quiser saber mais, você pode acessar o site oficial correspondente para visualizá-lo.