Bir modülü devDependencies'ten npm package.json içindeki bağımlılıklara taşıma


154

Bir modül taşımak için herhangi bir kısa komut var mı devDependencieshiç dependenciespackage.json içinde?

Kendimi hep bunu yaparken buluyorum:

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

Buna daha kısa bir yaklaşım var mı?

Yanıtlar:


191

Evet! modülü taşımak devDependenciesiçin dependencies:

npm install <module_name> --save-prod


183

Eğer tersini yapmak istiyorsanız (yani bir modül taşı dependenciesiçin devDependenciessadece yap):

npm install <module_name> --save-dev

veya stenografi:

npm i <module_name> -D

devDependencies- dependencies(prod) konumuna gitmek için stenografi :

npm i <module_name> -P

5
Benim için çalışıyor, v5.6
Legends

1
stenografi npm i module-example -Daynı zamanda eşyadan geliştiriciye geçmenin yanı sıra geliştiriciden npm i module-example -Peşya bağımlılığına geçmeye çalışacaktır
Andriy

@Andriy teşekkürler, bunu düşünmedim. Cevabı güncelleyecek!
Sid

Bunun yerine ipliği kullanıyorsanız, önce onu ile olan bağımlılıklardan çıkarmanız yarn remove <module_name>ve daha sonra tekrar bağımlılıklara eklemeniz gerekiryarn add <module_name> --dev
Eugenio

16

İplikte:

Bir modül taşı devDependenciesiçin dependencies:

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

Bir modül taşı dependenciesiçin devDependencies:

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

Yorumlarda belirtildiği gibi, komut aslında modülü siler ve yeni yerine yeniden yükler.


1
Gerçekten doğru mu? Şeyleri taşımak için iplikte bir yolu yok dependenciesetmek devDependencieskaldırıp yeniden eklemeden?
LondonRob

@LondonRob bulduğum tek yol bu
yohaiz

21
Bu hareket etmiyor, Bu sadece paketi silip tekrar
kuruyor

@seeker_of_bacon Burada arka planda hiçbir şey çalışmıyor. Sen kafa karıştırıcı olabilir &&ile &.
rudolfbyker

3

Projeniz henüz kilit dosyası veya shrinkwrap dosyası yoksa, sadece karşılık gelen hattını taşıyabilirsiniz package.json.

(Lockfiles kullanmamanızı tavsiye etmiyorum)


3

npmVeya yarnkomutları kullanmayla ilgili sorun , yeniden eklenen sürümün kullanılmakta olan sürümden farklı bir sürüm olması olasılığıdır. İstediğiniz buysa - hem bir hamle hem de bir yükseltme - devam edin ve kabul edilen cevabı kullanın.

Değilse, yalnızca nesneyi nesneden nesneye taşımak için el ile düzenleyinpackage.json (gerekirse oluşturun). Diğer yöne de gidebilirsiniz.devDependenciesdependencies

Kilit dosyası, şeylerin prod veya dev bağımlılıkları hakkında herhangi bir bilgi içermez, bu nedenle güncellenmesi gerekmez. Kilit dosyalarındaki bayrakları düzeltmek için bir npm/ yarn installdaha sonra yapabilirsiniz .


İçinde yalnızca tek bir dependenciesüst düzey bölüm olsa da package-lock.json, her girişin potansiyel devolarak bir bağımlılık bağımlılığı mı yoksa bir geçişli bağımlılık mı olduğunu gösteren bir işaret vardır . Bkz. Docs.npmjs.com/files/package-lock.json#dev "[dev] doğruysa, bu bağımlılık SADECE en üst düzey modülün bir geliştirme bağımlılığı veya bir geçişli bağımlılığıdır. hem en üst seviyenin gelişim bağımlılığı hem de en üst seviyenin gelişim dışı bağımlılığının geçişli bağımlılığıdır. "
rob3c

0

Npm yüklemesini kullanma sorunu, güncellenmiş sürümlerle sonuçlanmanızdır. Benim için işe yarayan:

  1. Bunları istenen parçaya (dev veya prod) taşıma
  2. Bunları node_modules klasöründen kaldırma
  3. gerçekleştirmek npm install

Bu, tüm sürümleri korudu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.