Uygulamayı başlatırken `npm start` ve` node app.js` arasındaki fark nedir?


188

Komutu kullanarak bir uygulama yükledim express new 'filename'. Ben sadece kullanarak bir uygulama başlatmak olduğunu öğrendim:

npm start

Şimdiye kadar kullandım:

node app.js

sunucumu başlatmak için. İkisi arasındaki farkın ne olduğunu bilen var mı? Teşekkürler.

Yanıtlar:


267

Gönderen adam sayfasında , başlatmak npm:

bir paket sağlanmışsa paketin "start" komut dosyasını çalıştırır. Herhangi bir sürüm belirtilmezse, "etkin" sürümü başlatır.

Kuşkusuz, bu açıklama tamamen yararsızdır ve tek söylediği budur. En azından socket.io'dan daha fazla belgelenmiştir.

Her neyse, gerçekten olan şey npm'in package.json dosyanızda görünmesi ve eğer böyle bir şeyiniz varsa

"scriptler": {"start": "kahve sunucusu. kahve"}

o zaman bunu yapacak. Npm başlangıç ​​komut dosyanızı bulamazsa, varsayılan olarak:

düğüm server.js

 


4
Ah, anlıyorum. Derleme zamanında daha fazla komut dosyası çalıştırmayı seçmediğiniz sürece, aslında aynı şeydir.
ReneGAED

1
Normalde "node server.js" yazarsanız, evet.
Yusuf X

1
i yeni bir uygulama oluşturdu, npm start çalışmıyor. eski uygulama için iyi çalışıyor. baska öneri?
öğrenci

1
Örneğin "node app.js" yönlendirici değişikliklerini almayacak, "npm start" ise package.json başlangıç ​​komut dosyasını çalıştırdığı için ("node ./bin/www" gibi)
Igor Vaschuk

1
'npm' ile başlarsanız, sadece konsolda 'rs' yazarak uygulamayı yeniden başlatabilirsiniz.
Elf

10

Dokümantasyon güncellendi . Cevabımın kabul edilen yanıta göre önemli değişiklikler var: Belgelerin güncel olduğunu ve kabul edilen cevabın birkaç bozuk bağlantısı olduğunu yansıtmak istedim.

Ayrıca, kabul edilen cevabın "varsayılan olarak node server.js" dediğini anlamadım . Belgelerin varsayılan davranışı netleştirdiğini düşünüyorum:

NPM-başlangıç

Bir paket başlatın

özet

npm start [-- <args>]

Açıklama

Bu keyfi bir komutu çalıştırır paketin "belirtilen start" kendi özelliğine " scripts" nesne . start" scripts" Nesnesinde " " özelliği belirtilmezse, çalışır node server.js.

Özetle, koşu npm startiki şeyden birini yapabilir:

  1. npm start {command_name}: Rasgele bir komut çalıştırın (örneğin, böyle bir komut startpackage.json scriptsnesnesinin özelliğinde belirtilirse )
  2. npm start: Başka bir startözellik yoksa (veya hayır command_nameiletilirse): Çalıştır node server.js( uygun olmayabilir , örneğin OP sahip değil server.js; OP çalışır nodeapp.js)
  3. Sadece 2 maddeyi listeleyeceğimi söyledim, ancak diğer olasılıklar (yani hata vakaları). Örneğin, package.jsonçalıştırdığınız dizinde hayır yoksa, npm startbir hata görebilirsiniz:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'
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.