2015-04-05 13 views
6

Słyszałem, że ładunek ma możliwość automatycznej rekompilacji zmienionych plików źródłowych, ale ciężko jest mi zastanowić się, jak to powiedzieć.Jak mogę ładować ładunek, aby automatycznie przekompilować zmienione pliki?

Na razie ręcznie uruchamiam cargo build lub cargo run za każdym razem, gdy chcę wpisać, sprawdź mój kod. Wolałbym zamiast tego po prostu zapisać plik i zobaczyć wyniki w sąsiednim oknie terminala.

Jeśli nadal nie masz pojęcia o czym mówię, szukam ekwiwalentu cargo w wysokości sbt ~compile lub sbt ~run.

Wydaje się dziwnie trudno znaleźć, więc zaczynam się zastanawiać, czy jest to naprawdę obsługiwane. Możliwe, że ktoś powiedział, że ładunek może wykryć zmienione pliki i przekompilować je, gdy chciał powiedzieć, że ładunek może wykryć niezmienionych plików i uniknąć ponownej kompilacji, jak make.

Odpowiedz

2

Wierzę, że rozróżnienie polega na tym, że dwukrotne uruchomienie cargo run nie spowoduje dwukrotnego zbudowania kodu, chyba że zmieniono pliki wejściowe. O ile mi wiadomo, Cargo nie ma wbudowanej funkcjonalności. Możesz złożyć wniosek o funkcję. Tymczasem proponuję użyć tylko watch. Możesz również użyć czegoś takiego, jak guard. Korzystanie z watch jest prostsze, ale wystarczyłoby uruchomić kod co N sekund. guard wymagałoby więcej konfiguracji, ale byłoby nieco bardziej wydajne.

3

Nie ma wbudowanego żadnego wsparcia, ale istnieje rozszerzenie (cargo-watch) do wykrywania zmian za pomocą inotify.

Kiedy go znalazłem, nie działałby ze stabilną (lub aktualną) rdzą, ale już ją naprawiłem. Nadal można użyć trochę pracy, ale z pewnością przyspieszy to cykl kompilacji/naprawiania błędów.

3

Jeśli pracujesz nad projektem serwera (np. Żelazkiem), który wciąż działa i musisz go zrestartować po zmianie plików, cargo watchdoesn't work as of writing this.

W międzyczasie można zainstalować watchexec tak:

cargo install watchexec 

a następnie używać go tak:

watchexec --restart "cargo run" 
+0

Thanks :) @robinst –

+1

@PiyushChauhan Właśnie zaktualizowane odpowiedź używać narzędzia zbudowanego w Rust, co sprawia, że ​​instalacja jest prosta. Sprawdź to :). – robinst

+0

Bardzo potrzebuję kompilacji przyrostowej, mam nadzieję, że wkrótce ją wydadzą –

Powiązane problemy