Mova um módulo de devDependencies para dependências no npm package.json


154

Existe algum comando curto para mover um módulo de devDependenciespara dependenciesno package.json?

Encontro-me sempre fazendo isso:

npm uninstall <module_name> --save-dev 
npm install <module_name> --save

Existe uma abordagem mais curta para isso?

Respostas:


191

Sim! para mover um módulo de devDependenciespara dependencies:

npm install <module_name> --save-prod


181

Se você quiser fazer o oposto (por exemplo, mover um módulo de dependenciespara devDependencies), faça o seguinte:

npm install <module_name> --save-dev

ou taquigrafia:

npm i <module_name> -D

atalho para mover de devDependenciespara dependencies(prod):

npm i <module_name> -P

5
Funciona para mim, v5.6
Legends

1
taquigrafia npm i module-example -Dtambém trabalho para se deslocar de prod para dev, assim como npm i module-example -Pa mudança de dev a dependências prod
Andriy

@ Andrei obrigado, não pensei nisso. Irá atualizar a resposta!
Sid

Se você estiver usando fio em vez disso, você precisará removê-lo primeiro de dependências com yarn remove <module_name>e, em seguida, está adicionando-lo em devDependencies comyarn add <module_name> --dev
Eugenio

16

Em fio:

Mova um módulo de devDependenciespara dependencies:

yarn remove <module_name> --dev && yarn add <module_name> 

Mova um módulo de dependenciespara devDependencies:

yarn remove <module_name> && yarn add <module_name> --dev

Como dito nos comentários, o comando realmente exclui o módulo e reinstale-o no novo local.


1
Isso está realmente certo? Não há como o fio mover as coisas de dependenciespara devDependenciessem remover e adicionar novamente?
LondonRob 12/02/19

@LondonRob essa é a única maneira que eu encontrei
yohaiz 12/02/19

21
Isso não está em movimento, este é simplesmente apagar o pacote e instalá-lo novamente
Thanveer Shah

@seeker_of_bacon Nada está sendo executado em segundo plano aqui. Você pode estar confundindo &&com &.
rudolfbyker 26/06

3

Se o seu projeto ainda não tiver um arquivo de bloqueio ou um arquivo de contração, você pode simplesmente mover a linha correspondente no seu arquivo package.json.

(Não estou recomendando não usar arquivos de bloqueio)


3

O problema com o uso npmou yarncomandos é que existe uma possibilidade de que a versão que é re-adicionado é uma versão diferente do que aquele que é usado actualmente. Se é isso que você quer - tanto um movimento e um upgrade - então vá em frente e usar a resposta aceita.

Caso contrário, basta editar manualmentepackage.json para mover a linha do devDependenciesobjeto para o dependenciesobjeto (criando-o, se necessário). Você pode ir na outra direção também.

O arquivo de bloqueio não contém nenhuma informação sobre se as coisas são dependências de produto ou desenvolvimento, de modo que não precisa ser atualizado. Você pode fazer um npm/ yarn installdepois para corrigir quaisquer sinalizadores nos arquivos de bloqueio.


Embora exista apenas uma única dependenciesseção de nível superior package-lock.json, cada entrada possui um devsinalizador para indicar se é uma dependência de desenvolvedor ou uma dependência transitiva de um. Consulte docs.npmjs.com/files/package-lock.json#dev "Se [dev for verdadeiro], essa dependência será APENAS uma dependência de desenvolvimento do módulo de nível superior ou uma dependência transitiva de um. Isso é falso para dependências que são uma dependência de desenvolvimento do nível superior e uma dependência transitiva de uma dependência de não desenvolvimento do nível superior ".
23919 rob3c

0

O problema do uso da instalação do npm é que você acaba com versões atualizadas. O que funcionou para mim é:

  1. Movendo-os para a parte pretendida (dev ou prod)
  2. Removendo-os da pasta node_modules
  3. Executar npm install

Isso manteve todas as versões intactas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.