npm verificar e actualizar o pacote, se necessário

precisamos de integrar o Karma test runner na TeamCity e, para isso, gostaria de dar aos engenheiros de sistemas um pequeno script (powershell ou o que quer que fosse) que:

  1. Pegue o número de versão desejado de algum arquivo de configuração (eu acho que eu posso colocá-lo como um comentário direito no karma.conf.js)

  2. Verificar se a versão definida do 'karma runner' instalada no 'repo global' do npm

  3. Se não for, ou a versão instalada é mais antiga do que o desejado: pegue e instale direito versão

  4. corre.: karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

então a minha verdadeira pergunta é: "como se pode verificar num script, se a versão desejada do pacote está instalada?". Deve fazer a verificação,ou é seguro ligar sempre?

Eu não quero sempre verificar e instalar a última versão disponível, porque outros valores de configuração podem tornar-se incompatíveis

Author: Volker E., 2013-05-13

7 answers

Para verificar se algum módulo de um projecto é 'antigo', deve fazer:

npm outdated

'outdated' irá verificar todos os módulos definidos no Pacote.json e ver se há uma versão mais recente no registro NPM.

Aqui está um exemplo, mostrando que xml2js (que está em node_modules/ no diretório atual) é obsoleta, porque uma versão mais recente existe (0.2.7):

[email protected] node_modules/xml2js current=0.2.6

Se quiser verificar se existem módulos desactualizados e instalar uma versão mais recente, então poderá fazer: npm update (para todos os módulos) ou npm update xml2js (apenas verificações/actualizações xml2js)

Dá uma vista de olhos nos documentos do MPN.
 335
Author: dublx, 2015-03-02 18:39:05

npm outdated irá identificar os pacotes que devem ser atualizados, e npm update <package name> pode ser usado para atualizar cada pacote. Mas npm update <package name> não actualizará as versões do seu pacote.json, que é um problema.

O melhor fluxo de trabalho é:

  1. identificar os pacotes desactualizados
  2. actualize as versões do seu pacote.json
  3. executar npm update para instalar as últimas versões de cada pacote

Verifique npm-check-updates para ajudar com este fluxo de trabalho.

  • instalar MPN-check-updates
  • executar npm-check-updates para listar quais pacotes estão desactualizados (basicamente a mesma coisa que executar npm outdated)
  • execute npm-check-updates -u para actualizar todas as versões do seu pacote.json (este é o molho mágico)
  • executar npm update como de costume para instalar as novas versões dos seus pacotes com base no Pacote actualizado.json
 256
Author: Erik Olson, 2014-06-01 13:13:49
Há também um módulo "fresco" chamado npm-check:

MPN-check

Verifique se existem dependências desactualizadas, incorrectas e não utilizadas.

enter image description here

Também oferece uma forma interactiva conveniente de actualizar as dependências.

 118
Author: alecxe, 2014-12-14 07:07:27
  • Para actualizar um único pacote local:

    1. Primeiro descubra os seus pacotes ultrapassados:

      npm outdated

    2. Depois actualiza o pacote ou pacotes que queres manualmente como:

      npm update --save package_name

Desta forma não é necessário actualizar o seu local package.json arquivo.

Note que isto irá atualizar o seu pacote para a versão mais recente.

  • Se escrever uma versão em o seu ficheiro package.json e faça:

    npm update package_name

    Neste caso, você terá apenas a próxima versão estável (desejada) a respeito da versão que você escreveu em seu arquivo package.json.

E com {[6] } pode descobrir a versão actual dos seus pacotes locais.

 46
Author: gugol, 2017-05-26 03:16:37

Um passo fácil:

$ npm i -g npm-check-updates && ncu -a && npm i

É tudo. Todas as versões do pacote em package.json serão as mais recentes.

Editar:

O que se passa aqui?
  1. Instalar um pacote que verifica as actualizações para si.

  2. Use este pacote para atualizar todas as versões do pacote no seu package.json (- a é o diminutivo de --updateAll).

  3. Instale todas as novas versões dos pacotes.

 27
Author: Matt, 2018-03-25 06:17:52

Ao instalar pacotes npm (tanto globalmente como localmente), poderá definir uma versão específica usando a sintaxe @version para definir uma versão a instalar.

Por outras palavras, fazer: npm install -g [email protected] irá garantir que apenas 0.9.2 está instalado e não reinstalar se já existe. Por uma palavra de conselho, sugiro evitar instalações globais do MPN onde puder. Muitas pessoas não percebem que se uma dependência define um arquivo bin, ele é instalado para ./node_ modules/.bandeja/. Muitas vezes, é muito fácil de usar essa versão local de um módulo instalado que é definido em seu pacote.json. Na verdade, os scripts do npm irão adicionar o ./node_ modules/.bin para o teu caminho. Como exemplo, aqui está um pacote.json que, quando eu executar npm install && npm test irá instalar a versão do karma definida no meu pacote.json, e usar essa versão do karma (instalado no node_ modules/.bin / karma) ao executar o programa test:
{
 "name": "myApp",
 "main": "app.js",
 "scripts": {
   "test": "karma test/*",
 },
 "dependencies": {...},
 "devDependencies": {
   "karma": "0.9.2"
 }
}
Isto dá-lhe o benefício do seu pacote.JSON define a versão de karma para usar e não ter que manter essa configuração globalmente em sua caixa de CI.
 4
Author: addisonj, 2013-05-13 16:17:01

Verificar pacotes desactualizados

npm outdated

Verifique e escolha os pacotes para actualizar

npx npm-check -u

Img oudado Npm

Npx npm-check-u img

 0
Author: Long Tran, 2018-09-11 08:56:07