Есть ли способ скомпилировать приложение node.js?
Есть ли способ скомпилировать исходные файлы node.js?
Ответ 1
Возможно, я очень поздно, но вы можете использовать модуль "nexe", который компилирует nodejs + ваш script в один исполняемый файл: https://github.com/crcn/nexe
Ответ 2
Node.js работает поверх движка Javascript V8, который сам оптимизирует производительность, компилируя код JavaScript в собственный код... так что нет причин для компиляции тогда?
Ответ 3
Вы получаете полнофункциональный двоичный файл без источников.
Также поддерживаются родные модули. (необходимо разместить в одной папке)
JavaScript-код преобразуется в собственный код во время компиляции с использованием внутреннего компилятора V8. Следовательно, ваши источники не обязаны выполнять двоичный код, и они не упакованы.
Совершенно оптимизированный собственный код может генерироваться только во время выполнения на основе клиентской машины. Без этой информации EncloseJS может генерировать только "неоптимизированный" код. Он работает примерно в 2 раза медленнее, чем NodeJS.
Кроме того, код исполняемого файла node.js помещается внутри исполняемого файла (вместе с вашим кодом) для поддержки API node для вашего приложения во время выполнения.
Варианты использования:
- Сделайте коммерческую версию приложения без источников.
- Сделайте демо/оценку/пробную версию вашего приложения без источников.
- Сделайте какой-то самораспаковывающийся архив или установщик.
- Создайте закрытое исходное графическое приложение с помощью node -thrust.
- Не нужно устанавливать node и npm для развертывания скомпилированного приложения.
- Не нужно загружать сотни файлов через npm install для развертывания вашего приложения. Разверните его как отдельный независимый файл.
- Поместите ваши активы в исполняемый файл, чтобы сделать его еще более портативным. Протестируйте приложение против новой версии node без ее установки.
Ответ 4
Здесь был ответ: Безопасное распространение приложений NodeJS. Raynos сказал: V8 позволяет предварительно скомпилировать JavaScript.
Ответ 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.