2010-08-26 7 views
7

È possibile compilare un'applicazione JS e l'interprete NodeJS in un singolo file eseguibile per la distribuzione?È possibile compilare un'app JS + l'interprete NodeJS in un singolo file eseguibile?

+0

Partenza: http://www.appcelerator.com/ se si desidera sviluppare eseguibili utilizzando JS, HTML e CSS. – BGerrissen

+0

Grazie a @BGerrissen, ma in realtà è un'app node.js sul lato server che è già in esecuzione e che vorrei distribuire "in sicurezza" sui server di un cliente. –

+0

Non penso che lo strumento di nodej sia ancora così lontano. Ho guardato intorno e ho visto molte configurazioni manuali. Tutti implicano l'installazione di nodejs e quindi la distribuzione del codice utilizzando git o whatnot. – BGerrissen

risposta

1

È possibile compilare un'applicazione JS e l'interprete NodeJS in un singolo file eseguibile per la distribuzione?

Questo potrebbe sembrare ovvio, ma ecco il mio punto di vista.

A "eseguibile unico per la distribuzione" suona molto come un programma di installazione ...

Un programma di installazione potrebbe contenere o essere in grado di recuperare in linea i vostri script js e un node.js. compilati Disfa tutto e crea uno script in /etc/init.d/ per avviare e arrestare il server.

Se tutti i client si trovano sulla stessa distribuzione (ad es. Debian), vorrei semplicemente creare un pacchetto per lo strumento di packaging appropriato (ad es. Apt) e lasciare che lo strumento del pacchetto gestisca tutto.

I clienti hanno tutte distro diverse, è possibile esaminare autopackage.

6

hai bisogno di una macchina Linux con git e pitone, quindi brutta soluzione:

$ git clone git://github.com/ry/node.git 
$ cd node 
$ vim src/node.js # add your code to end before "process.loop();" 
$ ./configure 
$ make 
$ sudo make install 
$ node 
+1

Davvero brutto. Penso che dovresti sovrascrivere la parte 'if (process.argv [1]) {... module.runMain()' in 'src/node.js', e caricare il tuo codice come modulo root invece di inserirlo Verbatim. Non ho provato però. – user123444555621

+0

l'idea era guida digitala per leggere il codice sorgente nodejs :) – Lauri

+0

Buono. +1 per questo: D – user123444555621

1

Se il vostro obiettivo è quello di eseguire JavaScript, si potrebbe essere in grado di creare un semplice programma wrapper C o C++ che generare un interprete e valuta il tuo JS. Se si desidera un singolo file, la sorgente js potrebbe essere inclusa come costante di stringa.

Quando si è compilato il programma wrapper, si desidera eseguire statically link sul nodo e sul resto dell'albero di dipendenza. Piuttosto che dipendere da librerie condivise sul sistema, il collegamento statico copierà le routine da cui dipende il progetto nel binario compilato.

Come si esegue questa operazione dipenderà proprio ambiente