Czym dokładnie jest polecenie „start-skryptów reagowania”?


177

Pracowałem z projektem Reacta przy użyciu create-react-appi mam dwie możliwości rozpoczęcia projektu:

Pierwszy sposób:

npm run startz definicją w package.jsonten sposób:

"start": "react-scripts start",

Drugi sposób:

npm start

Jaka jest różnica między tymi dwoma poleceniami? Jaki jest cel react-scripts start?

Próbowałem znaleźć definicję, ale właśnie znalazłem pakiet o tej nazwie. Nadal nie wiem, do czego służy to polecenie?


2
„start” to nazwa skryptu, w npmktórym uruchamiasz skrypty takie jak ten npm run scriptName, npm startjest również skrótem odnpm run start
— Sagiv bg

3
react-scripts startto właściwe polecenie, aby uruchomić aplikację React w trybie deweloperskim. To polecenie jest przechowywane w package.json, więc nie musisz go zapamiętywać i możesz po prostu wpisać zwykłe npm run startzamiast tego. npm startjest skrótem do tego ostatniego.
— Chris G

Odpowiedzi:


149

stwórz-reaguj-aplikację i reaguj-skrypty

react-scriptsto zestaw skryptów z create-react-apppakietu startowego. create-react-app pomaga w rozpoczynaniu projektów bez konieczności konfigurowania, więc nie musisz samodzielnie konfigurować projektu.

react-scripts startkonfiguruje środowisko programistyczne i uruchamia serwer, a także przeładowuje moduły na gorąco. Możesz przeczytać tutaj, aby zobaczyć, co robi dla Ciebie.

z aplikacją create-react-app masz następujące funkcje po wyjęciu z pudełka.

  • Obsługa składni React, JSX, ES6 i Flow.
  • Dodatki językowe poza ES6, takie jak operator rozszerzania obiektów.
  • Autoprefixed CSS, więc nie potrzebujesz -webkit- ani innych prefiksów.
  • Szybkie, interaktywne uruchamianie testów jednostkowych z wbudowaną obsługą raportowania pokrycia.
  • Serwer programistyczny na żywo, który ostrzega przed typowymi błędami.
  • Skrypt do tworzenia pakietów JS, CSS i obrazów na potrzeby produkcji, z hashami i mapami źródeł.
  • Pracownik usługowy działający w trybie offline i manifest aplikacji internetowej, spełniający wszystkie kryteria progresywnej aplikacji internetowej.
  • Bezproblemowe aktualizacje powyższych narzędzi z jedną zależnością.

skrypty npm

npm startjest skrótem do npm run start.

npm runsłuży do uruchamiania skryptów, które definiujesz w scriptsobiekcie twojego package.json

jeśli startw obiekcie skryptów nie ma klucza, domyślnie będzie tonode server.js

Czasami chcesz zrobić więcej, niż dają ci skrypty reakcji, w tym przypadku możesz zrobić react-scripts eject. Spowoduje to przekształcenie projektu ze stanu „zarządzanego” w stan niezarządzany, w którym masz pełną kontrolę nad zależnościami, skryptami kompilacji i innymi konfiguracjami.


Czy wiesz, jak uruchomić to na produkcji?
— user269867

10
by użyć go w produkcjach, powiedzielibyście npm run build. spowoduje to utworzenie folderu kompilacji. ten folder możesz następnie służyć. np. npm install -g servea następnie serve -s build facebook.github.io/create-react-app/docs/deployment
— Luke

Pierwsze trzy linki prowadzą do tego samego adresu URL.
— Andrew Grimm

zmienił drugi link na „co zawiera”
— Łukasz

64

Jak zauważył Sagiv bg, npm startpolecenie jest skrótem do npm run start. Chciałem tylko dodać przykład z życia, aby nieco to wyjaśnić.

Poniższa konfiguracja pochodzi z create-react-apprepozytorium github. package.jsonDefiniuje kilka skryptów, które określają rzeczywisty przepływ.

"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"
},

Dla jasności dodałem diagram. wprowadź opis obrazu tutaj

Niebieskie pola to odniesienia do skryptów, z których wszystkie można było wykonać bezpośrednio za pomocą npm run <script-name>polecenia. Ale jak widać, w rzeczywistości istnieją tylko 2 praktyczne przepływy:

  • npm run start
  • npm run build

Szare pola to polecenia, które można wykonać z wiersza poleceń.

Na przykład, jeśli uruchomisz npm start(lub npm run start), które faktycznie przekładają się na npm-run-all -p watch-css start-jspolecenie, które jest wykonywane z linii poleceń.

W moim przypadku mam to specjalne npm-run-allpolecenie, które jest popularną wtyczką, która wyszukuje skrypty zaczynające się od „build:” i wykonuje je wszystkie. Właściwie nie mam żadnego pasującego do tego wzorca. Ale może być również używany do uruchamiania wielu poleceń równolegle, co robi tutaj, używając -p <command1> <command2>przełącznika. Więc tutaj to wykonuje 2 skrypty, IE watch-cssi start-js. (Te ostatnie wymienione skrypty są obserwatorami, które monitorują zmiany plików i kończą się dopiero po zabiciu).

  • watch-cssZapewnia, że *.scsspliki są tłumaczone do *.cssplików i szuka przyszłych aktualizacjach.

  • Te start-jspunkty do react-scripts startktórego gospodarzem strony internetowej w trybie rozwoju.

Podsumowując, npm startpolecenie jest konfigurowalne. Jeśli chcesz wiedzieć, co robi, musisz sprawdzić package.jsonplik. (i możesz chcieć zrobić mały diagram, gdy sprawy się skomplikują).


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.