Czy jest sposób na kompilację węzła.pliki źródłowe js? [duplikat]

To pytanie ma już odpowiedź tutaj:

Czy istnieje sposób na skompilowanie węzła.js aplikacja?

Author: Mark, 2011-05-27

8 answers

Może bardzo późno, ale możesz użyć modułu "nexe", który kompiluje nodejs + Twój skrypt w jednym pliku wykonywalnym: https://github.com/crcn/nexe

 45
Author: Metal3d,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-28 18:32:15

Node.js działa na silniku Javascript V8, który sam optymalizuje wydajność poprzez kompilację kodu javascript do kodu natywnego... więc nie ma powodu do kompilacji, prawda?

Https://developers.google.com/v8/design#mach_code

 17
Author: Tor P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-04 16:27:45

EncloseJS .

Otrzymujesz w pełni funkcjonalny plik binarny bez źródeł.

Obsługiwane są również Moduły natywne. (musi być umieszczony w tym samym folderze)

Kod JavaScript jest przekształcany w kod natywny podczas kompilacji przy użyciu wewnętrznego kompilatora V8. Dlatego twoje źródła nie są wymagane do wykonania pliku binarnego i nie są pakowane.

Doskonale zoptymalizowany kod natywny może być generowany tylko w czasie wykonywania na maszynie klienta. Bez tej informacji EncloseJS może wygenerować tylko "nieoptymalizowany" kod. Działa około 2x wolniej niż NodeJS.

Również node.kod uruchomieniowy js jest umieszczany wewnątrz pliku wykonywalnego (wraz z kodem) w celu obsługi interfejsu API węzła dla Twojej aplikacji w czasie działania.

Przypadki użycia:

  • Utwórz komercyjną wersję aplikacji bez źródeł.
  • Stwórz wersję demo/ewaluacyjną / próbną aplikacji bez źródeł.
  • Stwórz rodzaj samorozpakowującego się archiwum lub instalatora.
  • Make a aplikacja GUI o zamkniętym źródle wykorzystująca node-thrust.
  • nie ma potrzeby instalowania node i npm, aby wdrożyć skompilowaną aplikację.
  • nie ma potrzeby pobierania setek plików przez npm install, aby wdrożyć aplikację. Wdrożyć go jako pojedynczy niezależny plik.
  • umieść swoje zasoby w pliku wykonywalnym, aby uczynić go jeszcze bardziej przenośnym. Przetestuj swoją aplikację pod kątem nowej wersji węzła bez jej instalowania.
 10
Author: Robinicks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 09:48:03

Była tu odpowiedź: Bezpieczna dystrybucja aplikacji NodeJS . Raynos powiedział: V8 pozwala na wstępną kompilację JavaScript.

 7
Author: Andre Jonker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:26

Możesz użyć kompilatora Closure aby skompilować swój javascript.

Możesz również użyć CoffeeScript aby skompilować coffeescript do javascript.

Co chcesz osiągnąć kompilacją?

Zadanie kompilacji dowolnego nieblokującego JavaScript w dół, aby powiedzieć, C brzmi bardzo zniechęcająco.

Nie ma tak dużej prędkości, aby uzyskać kompilację do C lub ASM. Jeśli chcesz, aby speed gain odciążał obliczenia do programu C poprzez sub proces.

 5
Author: Raynos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-26 21:54:33

Teraz może to obejmować więcej niż potrzebujesz (i może nawet nie działać dla aplikacji wiersza poleceń w środowisku nie graficznym, Nie wiem), ale jest nw.js . To Blink (np. Chromium/Webkit) + io.js (tj. Node.js).

Możesz użyć node-webkit-builder do tworzenia natywnych binariów wykonywalnych dla Linuksa, OS X i Windows.

Jeśli chcesz GUI, to ogromny plus. Możesz go zbudować za pomocą technologii internetowych. Jeśli nie, podaj "node-main" w package.json (i prawdopodobnie "window": {"show": false} chociaż może to działa, aby po prostu mieć node-main a nie main)

[5]} nie próbowałem użyć go w dokładnie ten sposób, po prostu wyrzucając go tam jako możliwość. Mogę powiedzieć, że z pewnością nie jest to idealne rozwiązanie Dla Nie-graficznego węzła.aplikacje js.
 0
Author: 1j01,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-15 18:08:54

Polecam uglifyJS , świetnie współpracuje z node.js.

 -3
Author: douwe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-03 13:39:39

Javascript nie ma kompilatora takiego jak na przykład Java / C(można go porównać bardziej do języków takich jak PHP na przykład). Jeśli chcesz napisać skompilowany kod powinieneś przeczytać sekcję o addons i nauczyć się C. Chociaż jest to dość skomplikowane i nie sądzę, że musisz to robić, ale zamiast tego po prostu napisz javascript.

 -6
Author: Alfred,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-26 23:29:44