Есть ли способ скомпилировать исходные файлы node.js?

Есть ли способ скомпилировать приложение node.js?

Ответ 1

Возможно, я очень поздно, но вы можете использовать модуль "nexe", который компилирует nodejs + ваш script в один исполняемый файл: https://github.com/crcn/nexe

Ответ 2

Node.js работает поверх движка Javascript V8, который сам оптимизирует производительность, компилируя код JavaScript в собственный код... так что нет причин для компиляции тогда?

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

Ответ 3

EncloseJS.

Вы получаете полнофункциональный двоичный файл без источников.

Также поддерживаются родные модули. (необходимо разместить в одной папке)

JavaScript-код преобразуется в собственный код во время компиляции с использованием внутреннего компилятора V8. Следовательно, ваши источники не обязаны выполнять двоичный код, и они не упакованы.

Совершенно оптимизированный собственный код может генерироваться только во время выполнения на основе клиентской машины. Без этой информации EncloseJS может генерировать только "неоптимизированный" код. Он работает примерно в 2 раза медленнее, чем NodeJS.

Кроме того, код исполняемого файла node.js помещается внутри исполняемого файла (вместе с вашим кодом) для поддержки API node для вашего приложения во время выполнения.

Варианты использования:

  • Сделайте коммерческую версию приложения без источников.
  • Сделайте демо/оценку/пробную версию вашего приложения без источников.
  • Сделайте какой-то самораспаковывающийся архив или установщик.
  • Создайте закрытое исходное графическое приложение с помощью node -thrust.
  • Не нужно устанавливать node и npm для развертывания скомпилированного приложения.
  • Не нужно загружать сотни файлов через npm install для развертывания вашего приложения. Разверните его как отдельный независимый файл.
  • Поместите ваши активы в исполняемый файл, чтобы сделать его еще более портативным. Протестируйте приложение против новой версии node без ее установки.

Ответ 5

Вы можете использовать компилятор Closure для компиляции вашего javascript.

Вы также можете использовать CoffeeScript для компиляции вашего coffeescript в javascript.

Что вы хотите достичь при компиляции?

Задача скомпилировать произвольный неблокирующий JavaScript, чтобы сказать, что C звучит очень сложно.

На самом деле не так много, чтобы получить компиляцию на C или ASM. Если вы хотите, чтобы вычисление выгрузки скорости ускорялось до программы C через вспомогательный процесс.

Ответ 6

Теперь это может включать больше, чем вам нужно (и может даже не работать для приложений командной строки в неграфической среде, я не знаю), но есть nw.js. Он мигает (т.е. Chromium/Webkit) + io.js(т.е. Node.js).

Вы можете использовать node-webkit-builder для создания собственных исполняемых двоичных файлов для Linux, OS X и Windows.

Если вы хотите графический интерфейс, это огромный плюс. Вы можете создать его с помощью веб-технологий. Если вы этого не сделаете, укажите "node-main" в package.json (и, вероятно, "window": {"show": false}, хотя, возможно, он работает только с node-main, а не main)

Я не пытался использовать его именно таким образом, просто выбрасывая его там как возможность. Я могу сказать, что это не идеальное решение для неграфических приложений Node.js.

Ответ 7

Я рекомендую uglifyJS, он отлично работает с node.js.

Ответ 8

javascript не имеет компилятора, например, Java/C (вы можете сравнить его больше с такими языками, как PHP). Если вы хотите написать скомпилированный код, вы должны прочитать раздел addons и узнать C. Хотя это довольно сложно и я не думаю вам нужно сделать это, но вместо этого просто напишите javascript.