'Tepki-komut dosyası başlat' komutu tam olarak nedir?


177

Kullanarak bir React projesiyle çalışıyorum ve projeyi create-react-appbaşlatmak için iki seçeneğim var:

İlk yol:

npm run startşöyle tanımı ile package.json:

"start": "react-scripts start",

İkinci yol:

npm start

Bu iki komut arasındaki fark nedir? Ve amacı react-scripts startnedir?

Tanımı bulmaya çalıştım, ancak bu isimde bir paket buldum. Hala bu komutun ne işe yaradığını bilmiyorum?


2
"start" bir komut dosyası adıdır, npmböyle komut dosyaları çalıştırırsanız npm run scriptName, npm startkısaca danpm run start
Sagiv bg

3
react-scripts startReact uygulamasını dev modunda çalıştırmak için uygun komuttur. Bu komut package.json içinde saklanır, böylece ezberlemenize gerek yoktur ve npm run startbunun yerine her zamankini yazabilirsiniz . npm startikincisi için bir kısayoldur.
Chris G

Yanıtlar:


149

create-tepki-uygulama ve tepki-betikleri

react-scriptscreate-react-appbaşlangıç ​​paketinden bir dizi komut dosyasıdır. create-tepki-uygulama projeleri yapılandırmadan başlatmanıza yardımcı olur, böylece projenizi kendiniz kurmanız gerekmez.

react-scripts startgeliştirme ortamını kurar ve bir sunucunun yanı sıra etkin modül yeniden yüklemesini başlatır. Sizin için her şeyin ne yaptığını görmek için burada okuyabilirsiniz .

ile yarat-app tepki Eğer kutunun dışında özellikleri şu var.

  • React, JSX, ES6 ve Flow sözdizimi desteği.
  • ES6'nın ötesindeki dil, nesne yayma işleci gibi.
  • Otomatik düzeltilen CSS, bu nedenle -webkit- veya diğer öneklere ihtiyacınız yoktur.
  • Kapsam raporlaması için yerleşik desteğe sahip hızlı etkileşimli birim test çalıştırıcısı.
  • Yaygın hatalar konusunda uyaran canlı bir geliştirme sunucusu.
  • JS, CSS ve görüntüleri üretim için karma ve ek haritalarla bir araya getiren bir derleme betiği.
  • Çevrimdışı ilk hizmet çalışanı ve tüm Aşamalı Web Uygulaması ölçütlerini karşılayan bir web uygulaması bildirimi.
  • Tek bir bağımlılıkla yukarıdaki araçlar için sorunsuz güncellemeler.

npm komut dosyaları

npm startiçin bir kısayoldur npm run start.

npm runscriptspaketinizin nesnesinde tanımladığınız komut dosyalarını çalıştırmak için kullanılır.

startkomut dosyaları nesnesinde anahtar yoksa, varsayılan olaraknode server.js

Bazen reaksiyon senaryolarının size verdiğinden daha fazlasını yapmak istersiniz, bu durumda yapabilirsiniz react-scripts eject. Bu, projenizi "yönetilen" bir durumdan, bağımlılıklar, tam komut dosyaları ve diğer yapılandırmalar üzerinde tam denetime sahip olduğunuz yönetilmeyen bir duruma dönüştürecektir.


Üretimde nasıl çalıştırılacağını biliyor musunuz?
user269867

10
söyleyebilirim npm run build. bu bir derleme klasörü oluşturur. bu klasörü sunabilirsiniz. örneğin npm install -g serveve sonra serve -s build facebook.github.io/create-react-app/docs/deployment
Luke

İlk üç bağlantı aynı URL'ye bağlanır.
Andrew Grimm

ikinci bağlantıyı "dahil olanlar" olarak değiştirdi
Luke

64

Sagiv bg'nin işaret ettiği gibi, npm startkomut için bir kısayol npm run start. Sadece biraz daha açıklığa kavuşturmak için gerçek hayattan bir örnek eklemek istedim .

Aşağıdaki kurulum create-react-appgithub deposundan geliyor . package.jsonGerçek akışını tanımlayan komut bir demet tanımlar.

"scripts": {
  "start": "npm-run-all -p watch-css start-js",
  "build": "npm run build-css && react-scripts build",
  "watch-css": "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive",
  "build-css": "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/",
  "start-js": "react-scripts start"
},

Açıklık için bir diyagram ekledim. resim açıklamasını buraya girin

Mavi kutular, komutları doğrudan npm run <script-name>komutla çalıştırabileceğiniz komut dosyalarına başvurulardır . Ancak gördüğünüz gibi, aslında sadece 2 pratik akış var:

  • npm run start
  • npm run build

Gri kutular, komut satırından yürütülebilen komutlardır.

Yani, örneğin, komut satırından çalıştırılan komuta gerçekten çeviren npm start(veya npm run start) çalıştırırsanız npm-run-all -p watch-css start-js.

Benim durumumda, npm-run-all"build:" ile başlayan komut dosyalarını arayan ve bunların tümünü yürüten popüler bir eklenti olan bu özel komut var . Aslında o kalıpla eşleşen hiç bir şeyim yok. Ancak, -p <command1> <command2>anahtarı kullanarak burada yaptığı çoklu komutları paralel olarak çalıştırmak için de kullanılabilir . Yani, burada 2 komut dosyası yürütür, yani watch-cssve start-js. (Son bahsedilen komut dosyaları, dosya değişikliklerini izleyen ve yalnızca öldürüldüğünde bitecek olan izleyicilerdir.)

  • Bu watch-css, *.scssdosyaların dosyalara çevrildiğinden emin olur *.cssve gelecekteki güncellemeleri arar.

  • start-jsİşaret react-scripts startbir gelişme modunda web sitesi hazırlamıştır.

Sonuç olarak, npm startkomut yapılandırılabilir. Ne yaptığını bilmek istiyorsanız, package.jsondosyayı kontrol etmeniz gerekir . (ve işler karmaşıklaştığında küçük bir diyagram yapmak isteyebilirsiniz).


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.