C’è un modo per compilare i file di origine node.js?

C’è un modo per compilare un’applicazione node.js ?

Forse sono in ritardo, ma puoi usare il modulo “nexe” che compila nodejs + il tuo script in un eseguibile: https://github.com/crcn/nexe

Node.js gira sopra il motore V8 Javascript, che a sua volta ottimizza le prestazioni compilando il codice javascript nel codice nativo … quindi non c’è motivo per la compilazione, vero?

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

EncloseJS .

Ottieni un binario completamente funzionale senza fonti.

Sono supportati anche i moduli nativi. (deve essere inserito nella stessa cartella)

Il codice JavaScript viene trasformato in codice nativo in fase di compilazione utilizzando il compilatore interno V8. Quindi, le tue fonti non sono obbligate ad eseguire il binario e non sono pacchettizzate.

Il codice nativo perfettamente ottimizzato può essere generato solo in fase di esecuzione in base alla macchina del cliente. Senza queste informazioni, EncloseJS può generare solo codice “non ottimizzato”. Funziona circa 2 volte più lentamente di NodeJS.

Inoltre, il codice runtime node.js viene inserito all’interno dell’eseguibile (insieme al codice) per supportare l’API del nodo per l’applicazione in fase di esecuzione.

Casi d’uso:

  • Crea una versione commerciale della tua applicazione senza fonti.
  • Crea una versione demo / di valutazione / di prova della tua app senza fonti.
  • Crea una sorta di archivio auto-estraente o programma di installazione.
  • Creare un’applicazione GUI con sorgente chiusa utilizzando il nodo-spinta.
  • Non è necessario installare node e npm per distribuire l’applicazione compilata.
  • Non è necessario scaricare centinaia di file tramite l’installazione di npm per distribuire l’applicazione. Distribuirlo come un singolo file indipendente.
  • Metti le tue risorse all’interno dell’eseguibile per renderlo ancora più portabile. Metti alla prova la tua app contro la nuova versione del nodo senza installarla.

C’è stata una risposta qui: Distribuzione sicura delle applicazioni NodeJS . Raynos ha detto: V8 ti consente di precompilare JavaScript.

Puoi usare il compilatore Closure per compilare il tuo javascript.

Puoi anche usare CoffeeScript per compilare il tuo coffeescript su javascript.

Cosa vuoi ottenere con la compilazione?

Il compito di compilare JavaScript arbitrario non bloccante per dire, C sembra molto scoraggiante.

Non c’è davvero tanta velocità da guadagnare compilando in C o ASM. Se si desidera che il guadagno di velocità scarichi il calcolo in un programma C attraverso un processo secondario.

Ora questo può includere più del necessario (e potrebbe anche non funzionare per applicazioni a linea di comando in un ambiente non grafico, non lo so), ma c’è nw.js. È Blink (es. Chromium / Webkit) + io.js (es. Node.js).

È ansible utilizzare node-webkit-builder per creare binari eseguibili nativi per Linux, OS X e Windows.

Se vuoi una GUI, questo è un vantaggio enorme. Puoi crearne uno con le tecnologie web. Se non lo fai, specifica "node-main" nel package.json (e probabilmente "window": {"show": false} anche se forse funziona semplicemente con un node-main e non un main )

Non ho provato ad usarlo esattamente in questo modo, semplicemente lanciandolo là fuori come possibilità. Posso dire che non è certamente una soluzione ideale per le applicazioni Node.js non grafiche.

Raccomando uglifyJS , funziona alla grande con node.js.

javascript non ha un compilatore come ad esempio Java / C (puoi confrontarlo più con linguaggi come PHP, per esempio). Se vuoi scrivere un codice compilato dovresti leggere la sezione sugli addon e imparare C. Anche se questo è piuttosto complesso e non penso che tu debba farlo, devi invece scrivere javascript.