Piszę skrypt wsadowy, aby upiększyć kod JavaScript. Musi działać zarówno w systemie Windows, jak i Linux .
Jak mogę upiększyć kod JavaScript za pomocą narzędzi wiersza poleceń?
Piszę skrypt wsadowy, aby upiększyć kod JavaScript. Musi działać zarówno w systemie Windows, jak i Linux .
Jak mogę upiększyć kod JavaScript za pomocą narzędzi wiersza poleceń?
Odpowiedzi:
Najpierw wybierz swój ulubiony Pretty Print / Beautifier oparty na JavaScript. Wolę ten ohttp://jsbeautifier.org/ , ponieważ to właśnie znalazłem jako pierwsze. Pobiera swój plik https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
Po drugie, pobierz i zainstaluj oparty na Javie silnik Javascript grupy Mozilla, Rhino . „Instalacja” jest nieco myląca; Pobierz plik zip, rozpakuj wszystko, umieść js.jar w ścieżce klas Java (lub Library / Java / Extensions w systemie OS X). Następnie możesz uruchamiać skrypty z wywołaniem podobnym do tego
Użyj Pretty Print / Beautifier z kroku 1, aby napisać mały skrypt powłoki, który odczyta twój plik javascript i uruchomi go przez Pretty Print / Beautifier od kroku pierwszego. Na przykład
Rhino daje javascriptowi kilka dodatkowych przydatnych funkcji, które niekoniecznie mają sens w kontekście przeglądarki, ale w kontekście konsoli. Funkcja print robi to, czego można się spodziewać i wypisuje ciąg. Funkcja readFile akceptuje ciąg ścieżki pliku jako argument i zwraca zawartość tego pliku.
Możesz wywołać powyższe coś w stylu
Możesz mieszać i dopasowywać Javascript i Javascript w swoich skryptach uruchamiania Rhino, więc jeśli znasz trochę Javę, nie powinno być zbyt trudno uruchomić to również ze strumieniami tekstowymi.
źródło
UPDATE kwiecień 2014 :
Beautifier został przepisany od czasu, gdy odpowiedziałem na to w 2010 roku. Jest tam teraz moduł Pythona, pakiet npm dla nodejs, a plik jar zniknął. Przeczytaj stronę projektu na github.com .
Styl Pythona:
Styl NPM:
aby go użyć:
Oryginalna odpowiedź
Dodawanie do odpowiedzi @Alan Storm
narzędzie do upiększania wiersza poleceń oparte na http://jsbeautifier.org/ stało się trochę łatwiejsze w użyciu, ponieważ jest teraz (alternatywnie) oparte na silniku javascript V8 (kod c ++) zamiast rhino (silnik JS oparty na Javie, w pakiecie jako „js.jar”). Możesz więc użyć V8 zamiast nosorożca.
Jak używać:
pobierz plik zip jsbeautifier.org ze strony http://github.com/einars/js-beautify/zipball/master
(jest to adres URL pobierania powiązany z plikiem zip, takim jak http://download.github.com/einars-js-beautify-10384df.zip )
stary (już nie działa, plik jar zniknął)
nowy (alternatywny)
zainstaluj / skompiluj v8 lib Z svn, zobacz v8 / README.txt w wyżej wymienionym pliku zip
-ma nieco inne opcje linii poleceń niż wersja rhino,
-i działa świetnie w Eclipse, gdy jest skonfigurowany jako „narzędzie zewnętrzne”
źródło
Jeśli używasz nodejs, spróbuj uglify-js
W systemie Linux lub Mac, zakładając, że masz już zainstalowany nodejs, możesz zainstalować uglify za pomocą:
A następnie uzyskaj opcje:
Więc jeśli mam plik źródłowy,
foo.js
który wygląda tak:Mogę to upiększyć tak:
uglify
domyślnie używa spacji do wcięć, więc jeśli chcę przekonwertować wcięcie z 4 spacjami na zakładki, mogę je uruchomić, przezunexpand
które Ubuntu 12.04 jest dostarczany:Lub możesz to wszystko zrobić za jednym razem:
Możesz dowiedzieć się więcej o nierozszerzaniu tutaj
więc po tym wszystkim kończę z plikiem, który wygląda tak:
aktualizacja 2016-06-07
Wygląda na to, że opiekun uglify-js pracuje teraz nad wersją 2, chociaż instalacja przebiega tak samo.
źródło
uglifyjs -b
robi o wiele więcej niż tylko naprawianie wcięć, przestawia i przepisuje kod, być może w celu zwiększenia wydajności. Nie tego chciałem. Używałem starszej wersji, w Ubuntu 14.04.uglifyjs -b
przestawia i przepisuje kod?W systemie Ubuntu LTS
źródło
js-beautify -o file.js file.js
W konsoli możesz używać stylu artystycznego (aka AStyle) z
--mode=java
.Działa świetnie i jest darmowy, open source i wieloplatformowy (Linux, Mac OS X, Windows).
źródło
Użyj nowoczesnego sposobu JavaScript:
Użyj Grunt w połączeniu z wtyczką jsbeautifier dla Grunt
Możesz łatwo zainstalować wszystko w swoim środowisku deweloperskim za pomocą npm .
Wszystko, czego będziesz potrzebować, to skonfigurowanie Gruntfile.js z odpowiednimi zadaniami, które mogą również obejmować konkatenację plików, lint, uglify, minify itp., I uruchomić polecenie grunt.
źródło
Nie jestem w stanie dodać komentarza do zaakceptowanej odpowiedzi, dlatego widzisz post, który w ogóle nie powinien istnieć.
Zasadniczo potrzebowałem także upiększania javascript w kodzie java i ku mojemu zaskoczeniu żaden nie jest dostępny, o ile mogłem znaleźć. Więc zakodowałem jeden samodzielnie w oparciu o zaakceptowaną odpowiedź (otacza skrypt jsbeautifier.org beautifier .js, ale można go wywołać z javy lub wiersza poleceń).
Kod znajduje się pod adresem https://github.com/belgampaul/JsBeautifier
Użyłem rhino i beautifier.js
UŻYCIE z konsoli: java -jar wcięcie skryptu jsbeautifier.jar
przykład: java -jar jsbeautifier.jar "function ff () {return;}" 2
UŻYCIE z kodu java: public static String jsBeautify (String jsCode, int indentSize)
Zapraszamy do rozszerzenia kodu. W moim przypadku potrzebowałem tylko wcięcia, więc mogłem sprawdzić wygenerowany javascript podczas programowania.
Mam nadzieję, że zaoszczędzi Ci to trochę czasu w Twoim projekcie.
źródło
Napisałem artykuł wyjaśniający, jak zbudować narzędzie do upiększania JavaScript z wiersza poleceń zaimplementowane w JavaScript w mniej niż 5 minut. YMMV.
źródło
Wydaje mi się, że kiedy zapytałeś o narzędzie wiersza poleceń, chciałeś po prostu upiększyć wszystkie swoje pliki js zbiorczo.
W takim przypadku Intellij IDEA (testowany z 11.5) może to zrobić.
Wystarczy zaznaczyć dowolny plik projektu i wybrać „Kod” -> „Przeformatuj kod ..” w głównym menu IDE. Następnie w oknie dialogowym wybierz „wszystkie pliki w katalogu ...” i naciśnij „enter”. Upewnij się tylko, że przeznaczyłeś wystarczającą ilość pamięci dla maszyny JVM.
źródło
Masz kilka możliwości wyboru jednej wkładki. Używaj z npm lub samodzielny z npx .
Semistandar
Standard
Ładniejsze
źródło