Как сделать exe файл в javascript

Обновлено: 06.07.2024

У меня есть приложение node, которое я написал, что я запускаю следующим образом:

node.exe app.js inputArg

Можно ли каким-либо образом упаковать его в .exe? Так что я могу просто сделать что-то вроде этого?

У меня есть способ подделать это, используя пакетный файл, поэтому я могу это сделать:

Но для этого требуется, чтобы у меня были все зависимости и node в этой папке, что не идеально.

спросил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

Решением, которое я использовал, является Roger Wang node-webkit.

Это фантастический способ пакетных приложений nodejs и их распространения, он даже дает вам возможность "связывать" все приложение как единый исполняемый файл. Он поддерживает Windows, Mac и Linux.

Здесь приведены некоторые документы о различных вариантах развертывания приложений node -webkit, но в двух словах вы делаете следующее:

    Замените все ваши файлы с помощью package.json в корневом каталоге
    Измените расширение с .zip на .nw
    copy/b nw.exe + app.nw app.exe

Как добавленное примечание - я использовал несколько приложений для производства/установки cd, используя это, и он отлично работал. Такое приложение запускается в Windows, Mac, Linux и через Интернет.

ответил(а) 2020-03-21T21:17:46.372971+03:00 1 год, 8 месяцев назад

Есть несколько альтернатив, как бесплатных, так и коммерческих. Я не использовал ни одного из них, но теоретически они должны работать:

Большинство из них потребует от вас сохранить командный файл в качестве основного исполняемого файла, а затем связать node.exe и ваши скрипты.

В зависимости от вашего сценария у вас также есть возможность перенести его в JSDB, который поддерживает простой способ создания исполняемых файлов, просто добавляя к нему ресурсы.

Третье квази-решение - сохранить узел где-то вроде C:\utils и добавить эту папку в PATH окружения PATH . Затем вы можете создавать .bat файлы в этом каталоге, который запускает node + ваши любимые скрипты - я получил coffee coffeescript, работающий с Windows таким образом. Эта настройка может быть автоматизирована с помощью пакетного файла, VB-скрипта или установщика.

ответил(а) 2020-03-31T21:13:04.343322+03:00 1 год, 7 месяцев назад

Для тех, кто сталкивается с этим вопросом, теперь есть два проекта, которые создают exe файлы из ваших проектов узлов, Pkg и Electron.atom.io, они немного отличаются:

Pkg скомпилирует ваш проект в собственный код, они также включают ресурсы и установку nodejs (системе не нужно устанавливать nodejs для выполнения .exe). Ваш исходный код не будет включен. Получающийся исполняемый файл - ТОЛЬКО для Windows (.exe). Все платформы поддерживаются. Теперь требуется лицензия на коммерческие продукты. Полностью с открытым исходным кодом. Electron.atom.io, хотя он не будет компактировать и генерировать .exe для вас, он МОЖЕТ использоваться для распространения приложений nodejs, поскольку они предлагают способ распространения приложений. Преимущества в том, что Electron является мультиплатформенным (Windows, Mac OSX, Linux), минусы в том, что ваш исходный код будет включен, даже если они предлагают способ распространения вашего приложения в архиве asar. Это не будет пуленепробиваемым, но все же лучше, чем ваш источник на равнине.

ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

По умолчанию Windows связывает файлы .js с Windows Script Host, автономным механизмом JS для автономной работы Microsoft. Если вы введете script.js в командной строке (или дважды щелкните файл .js в проводнике), Script выполняется wscript.exe .

Это может быть решение локальной проблемы с глобальными настройками, но вы можете associate .js с node.exe вместо этого, чтобы набрав script.js в командной строке или дважды щелкнув/перетащив элементы на скрипты, они запустили их с помощью Node.

Конечно, если — например, me — вы связали файлы .js с редактором, чтобы двойной щелчок по ним открыл ваш любимый текстовый редактор, это предложение не принесет много пользы. Вы также можете добавить пункт меню "Щелчок правой кнопкой мыши" в "Execute with Node" to .js , хотя этот вариант не позволяет удовлетворить ваши потребности в командной строке.

Самое простое решение, вероятно, просто использовать пакетный файл – вам не нужно иметь копию Node в папке, в которой находится ваш Script. Просто выполните ссылку Node:

Итак, если вы назовете полученный EXE "app.exe", вы можете ввести app arg1 . и Node будет запущен с командной строкой "app.js" arg1 . . Обратите внимание, что приложение C bootstrapper немедленно выйдет, оставив Node ответственным за консольное окно.

Поскольку это, вероятно, довольно широкий интерес, я пошел дальше и сделал это доступным на GitHub, включая скомпилированный exe, если попасть в фургоны с незнакомыми людьми - это ваша вещь.

ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

Лучший инструмент, который я знаю, это инструмент NodeJS: zeit/pkg

Он очень прост в использовании (гораздо больше, чем Nexe, просто в качестве примера), вы можете просто установить его глобально: npm install -g pkg

создать исполняемые файлы для macOS, Linux и Windows:

У меня был немного сложный код, который использовал сервер сокетов NodeJS, я пробовал разные приложения, ни одно из них не создавало его должным образом, кроме zeit/pkg.

ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

Поскольку на этот вопрос был дан ответ, было запущено другое решение.

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

Изменить:
AppJS больше неактивен, но сам предлагает вилку под названием deskshell.

ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

После того, как вы установили JXcore в Windows, все, что вам нужно сделать, это запустить:

В результате будет создан файл .exe, который вы можете распространять и который можно выполнять без каких-либо внешних зависимостей (вам даже не нужны ни JXcore, ни Node.js в системе).

Изменить 2018

ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

Не пробовал, но nexe выглядит как nexe, это можно сделать:

ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

Я рекомендую вам BoxedApp для этого. Это коммерческий продукт, который работает очень хорошо. Он работает для любого приложения NodeJS. Конечный пользователь получит только один EXE файл для вашего приложения. Нет необходимости в установке.

В Electron, например, конечный пользователь должен установить/распаковать приложение, и он увидит все исходные файлы вашего кода.

BoxedApp Он упаковывает все файлы и зависимости, которые требуется вашему приложению NodeJS.
Он поддерживает сжатие, а скомпилированный файл работает в Windows XP +

Когда вы используете его, обязательно добавьте Node.EXE в скомпилированное приложение. Выберите версию node, которая поддерживает Windows XP (если вам это нужно)

Программа поддерживает аргументы командной строки, поэтому после пакета вы можете сделать

И вы можете получить аргумент в коде node:

Иногда ваше приложение имеет зависимости от файлов, поэтому в BoxedApp вы можете добавить любую папку и файл в качестве зависимости, например, вы можете вставить файл настроек.

Дополнительная информация:

Просто примечание: обычно я рекомендую бесплатное программное обеспечение с открытым исходным кодом/бесплатно, но в этом случае я не нашел ничего, что выполнит эту работу.


ответил(а) 2020-03-21T20:58:35+03:00 1 год, 8 месяцев назад

disclose по существу делает самораспаковывающийся exe из вашего проекта Node.js и Node.js-интерпретатор со следующими характеристиками:

    Нет графического интерфейса. Чистый CLI.
    Нет зависимостей во время выполнения
    Поддерживает как Windows, так и Unix
    Выполняется медленно в первый раз (извлечение в каталог кеша), затем быстро навсегда

Я создал новый проект под названием node-compiler , чтобы скомпилировать ваш проект Node.js в один исполняемый файл.

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

Кроме того, он перенаправляет запросы файлов и каталогов прозрачно в память, а не в файловую систему во время выполнения. Поэтому для запуска скомпилированного продукта не требуется исходный код.

Здравствуйте, форумчане! Столкнулся со следующей проблемой. Написал небольшой скрипт на ноде. Для запуска скрипта требуется написать в командную строку:
node index.js arg1 arg2
Так вот. Хотелось бы сделать файл .exe, в котором бы можно было выбрать arg1(что-то вррде select), написать arg2(text edit zone) и нажать на кнопочку для запуска команды выше.

Не знаю в какую сторону двигаться, поскольку знаком с нодой недавно. Можете подсказать, люди добрые?

  • Вопрос задан более двух лет назад
  • 4982 просмотра

MvcBox

JaxAdam

тут такое дело, я на электроне реализовал это все дело. Ток вот прикол в том, что в консоли надо node electron . вводить для запуска программы)

MvcBox

Adik Izat, не-а, не надо. Для электрона есть билдеры, которые не так сложно нагуглить)

JaxAdam

Inviz Custos, спасибо за помощь, нашел библиотеку "electron-builder", ща будем учиться)

joeberetta

В дополнение к Inviz Custos
Есть также NodeGUI. Он сыроват еще. И как в оф.сайте пока пишут, используйте Electron, если вам нужно срочно свое приложение сделать и не морочиться с оптимизацией и прочими проблемами. Ну а в защиту НодГУИ могу сказать, что это обертка над Qt(погуглите сами), для NodeJs. За счет этого ваше nodejs приложение будет чутка оптимизированней чем решение на electron/nwjs

К сожалению красиво примеров именно для javascript не найти но если воспользоваться visual studio и посмотреть примеры javascript windows form то можно написать что угодно.

Итоговый exe получится несколько килобайт, и при этом почти кроссплатформенный (с помощью mono можно запустить на linux)

My personal blog. Here you can find my articles about programming, my metal music and probably other stuffs.

Упаковывание Node JS приложения в единый исполняемый файл для продакшена (Windows EXE, Mac OS, Linux)

  • Get link
  • Facebook
  • Twitter
  • Pinterest
  • Email
  • Other Apps

Прошло довольно прилично времени с момента моих последний статей, и чтобы как-то вернуть в форму блог, решил начать с такой темы.
Индустрия за последние годы шагнула вперед, менялась мода, тренды, технологии в IT. Лично для меня место "базового" скриптого языка с php постепенно занял javascript, что и не мудрено, чем лаконичнее и проще язык для таких целей - тем лучше.
Но одно дело установить связку node js со всеми зависимостями и npm'ами у себя, а другое дело - все это дело как-то протащить на компьютер конечного пользователя, да так, чтобы оно еще и работало. С этого и начнем.
В этой статье я не буду затрагивать тему приложений с графическим интерфейсом, вроде electron'a, а затрону лишь часть касательно того, как сделать чтобы node.js приложение запустилось на конечном компьютере без окружения и заработало. Это отлично подойдет для консольных приложений и скриптов - где главное это результат :).
Из множества пакетов выполняющих одну и ту же роль - запаковщик node_modules вместо с node-приложением, наиболее простой и понравившийся мне (и о чудо, еще и рабочий) - стал pkg. Ставивим:

Для запаковки приложения нужно зайти в папку с приложением и добавить в package.json:

где index.js - стартовый скрипт.
Затем выполнить в консоли:
И все, получить на выходе все сборки приложений под 3 платформы (Windows, Linux, Mac OS).

На этом месте можно было бы остановиться в статье, т.к. проблем скорее всего не будет, а pkg успешно все собирет, а все скрипты и модули приложения запакуются.
Но не всегда все просто, иногда, например, нужно в приложение включить сторонние ресурсы, например какой-то исполняемый файл, или что-то другое, скрипт не всегда подхватит все импорты и require из оригинала, особенно если эти ресурсы запаковывались как-то подругому.
Давайте разберемся как добавить дополнительные ресурсы, они же будут включены в snapshot filesystem.

В первую очередь убедитесь, что ваши ресурсы испортировались примерно следующим образом через path.join:

Если это не так, то можно добавить вручную в package.json, где assets - ваши ресурсы. Если же все нужные файлы импорированы как указано в коде выше, это можно не делать, pkg сам определит нужные импорты.

Но и это не все. Одно дело иметь дело со считываемыми ресурсами, а другое с ресурсами, которые требует запуск. Доступ к таким ресурсами из snapshot filesystem не будет! Предварительно вы должны распаковать нужный файл из системы снапшотов, и только потом с ними работать как с обычным файлом. Делается это к примеру так:


Теперь с этим файлом можно работать как с обычным. Я не удивлюсь что кто-то сталкнется с другими более цугундерными проблемами, но pkg в отличии от многих других скриптов хотябы пакует рабочие варианты. Более хороший запаковщик у electron-builder, но об этом как-нибудь в другой раз.

У меня есть приложение для узла, которое я написал и которое я запускаю следующим образом:

node.exe app.js inputArg

Есть ли способ, которым я могу упаковать это в .exe самостоятельно? Так что я могу просто сделать что-то подобное?

У меня есть способ подделать это с помощью командного файла, поэтому я могу сделать это:

Но это требует, чтобы у меня были все зависимости и узел в этой папке, что не идеально.

Есть несколько альтернатив, как бесплатных, так и коммерческих. Я не использовал ни одного из них, но теоретически они должны работать:

Большинство из них потребует от вас сохранить командный файл в качестве основного исполняемого файла, а затем связать node.exe и ваши скрипты.

В зависимости от вашего сценария у вас также есть возможность перенести его на JSDB, который поддерживает простой способ создания исполняемых файлов, просто добавляя к нему ресурсы.

Третье квази-решение - сохранить узел где-то вроде C:\utils и добавить эту папку в переменную среды PATH . Затем вы можете создавать .bat-файлы в этом каталоге, который запускает node + ваши предпочтительные сценарии - я получил coffee работы coffeescript с Windows таким образом. Эта настройка может быть автоматизирована с помощью командного файла, VB-скрипта или установщика.

Существует проект инструмента сборки с открытым исходным кодом, который называется nodebob. Я предполагаю, что рабочие платформы Windows,

  1. просто клонировать или скачать проект
  2. Скопируйте все свои файлы проекта node-webkit в папку приложения.
  3. запустить скрипт build.bat.

Вы найдете исполняемый файл в папке релиза.

Попробуйте nexe, который создает один исполняемый файл из ваших приложений node.js

Я изучал эту тему в течение нескольких дней, и вот что я нашел. Варианты делятся на две категории:

Если вы хотите создать настольное приложение, лучше всего подойдет:

1- NW.js: позволяет вызывать все модули Node.js непосредственно из DOM и предоставляет новый способ написания приложений со всеми веб-технологиями.

2- Electron: создание кросс-платформенных приложений для настольных ПК с использованием JavaScript, HTML и CSS

Вот хорошее сравнение между ними: Сравнение NW.js и Electron. Я думаю, что NW.js лучше, и он также предоставляет приложение для компиляции файлов JS. Также есть несколько автономных сборщиков исполняемых файлов и установщиков, например Enigma Virtual Box. Оба они содержат встроенную версию Chrome, которая не нужна для серверных приложений.

если вы хотите упаковать серверное приложение, это лучшие варианты:

компилятор узла: опережающий (AOT) компилятор, разработанный для Node.js, который просто работает.

Nexe: создайте один исполняемый файл из ваших приложений node.js

Я считаю, что в этой категории лучше работает компилятор узлов, который поддерживает динамические модули require и собственные узлы. Он очень прост в использовании, и его выход начинается с 25 МБ. Полное сравнение с другими решениями вы можете прочитать на странице Node Compiler. Я не слишком много читал о Nexe, но сейчас, похоже, Node Compiler не компилирует файл js в двоичный формат с помощью функции моментальных снимков V8, но он запланирован для версии 2. Он также будет иметь встроенный установщик установщика.

Поскольку на этот вопрос был дан ответ, было запущено другое решение.

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

Изменить: AppJS больше не активен, но сам предлагает вилку под названием deskshell.

Устал начинать выигрыш из командной строки, тогда я тоже натолкнулся на это. Немного улучшенная вер. над чем josh3736 . При этом используется XML-файл для получения некоторых настроек. Например, путь к Node.exe , а также файл для запуска в app.js. по умолчанию. Также загружаемая среда (production, dev и т. Д.), Которую вы указали в своем app.js (или server.js, или как там вы его называли). По сути, он добавляет NODE_ENV= , где - это имя вашей конфигурации в app.js в качестве переменной для вас. Вы делаете это, изменяя элемент «режим» в config.xml. Вы можете скачать проект здесь ==> github. Обратите внимание, что в событиях Post Build вы можете изменить пути копирования для автоматического копирования файла config.xml и исполняемого файла в каталог Nodejs , просто чтобы сохранить шаг. В противном случае отредактируйте их, иначе ваша сборка выдаст предупреждение.

Лучший из известных мне инструментов - это инструмент NodeJS: zeit / pkg

Он очень прост в использовании (гораздо больше, чем Nexe, просто в качестве примера), вы можете просто установить глобально: npm install -g pkg

Создать исполняемые файлы для macOS, Linux и Windows:

У меня был немного сложный код, который использовал сервер сокетов NodeJS, я пробовал разные приложения, ни одно из них не создавало его должным образом, кроме zeit / pkg .

Еще не пробовал, но nexe выглядит так, как будто nexe может сделать это:

Я рекомендую вам BoxedApp для этого. Это коммерческий продукт, который работает очень хорошо. Это работает для любого приложения NodeJS. Конечный пользователь получит только один EXE-файл для вашего приложения. Нет необходимости в установке.

Например, в Electron конечному пользователю необходимо установить / распаковать ваше приложение, и он увидит все исходные файлы вашего кода.

BoxedApp Он упаковывает все файлы и зависимости, которые нужны вашему приложению NodeJS. Он поддерживает сжатия, а скомпилированный файл работает в Windows XP +

Когда вы используете его, обязательно добавьте Node.EXE в скомпилированное приложение. Выберите версию узла, которая поддерживает Windows XP (если вам это нужно)

Программа поддерживает аргументы командной строки, поэтому после пакета вы можете сделать

И вы можете получить аргумент в коде вашего узла:

Иногда ваше приложение имеет файловые зависимости, поэтому в BoxedApp вы можете добавить любую папку и файл в качестве зависимости, например, вы можете вставить файл настроек.

Дополнительная информация:

Просто примечание: обычно я рекомендую использовать программное обеспечение с открытым исходным кодом / бесплатное программное обеспечение, но в этом случае я не нашел ничего, что могло бы выполнить работу.

После установки JXcore в Windows все, что вам нужно сделать, это запустить:

В результате вы получите файл .exe, который вы можете распространять и который можно выполнять без каких-либо внешних зависимостей (вам даже не нужны ни JXcore, ни Node.js в системе).

Изменить 2018

Решением, которое я использовал, является узел-webkit Роджера Вана.

Это фантастический способ упаковки приложений nodejs и их распространения, он даже дает вам возможность «связать» все приложение в один исполняемый файл. Он поддерживает Windows, Mac и Linux.

Здесь приведены некоторые документы в различных вариантах развертывания приложений node-webkit, но в двух словах, вы делаете следующее:

  1. Заархивируйте все ваши файлы с пакетом .json в корне
  2. Измените расширение с .zip на .nw
  3. copy / b nw.exe + app.nw app.exe

Так же, как добавленное примечание - я поставил несколько производственных приложений box / install cd, используя это, и это отлично работает. Это же приложение работает на Windows, Mac, Linux и через Интернет.

Обновление: имя проекта изменилось на nw.js и правильно расположено здесь: nw.js

По умолчанию Windows связывает .js файлы с Windows Script Host, стенд Microsoft один двигатель JS. Если вы введете script.js в командной строке (или дважды щелкните файл .js в Проводнике), сценарий будет выполнен wscript.exe .

Это может быть решение локальной проблемы с глобальными настройками, но вы могли бы ассоциировать > файлы с node.exe вместо этого, так что при вводе script.js в командной строке или двойном щелчке / перетаскивании элементов в сценарии они запускаются с помощью Node.

Конечно, если - как и я - вы связали файлы .js с редактором, так что двойной щелчок по ним откроет ваш любимый текстовый редактор, это предложение не принесет много пользы. Вы также можете добавить пункт меню, вызываемый правой кнопкой мыши of «Execute with Node» для файлов .js , хотя эта альтернатива не решает ваши потребности командной строки.

Возможно, самое простое решение - просто использовать командный файл - вам не нужно иметь копию Node в папке, в которой находится ваш скрипт. Просто обращайтесь к исполняемому файлу Node абсолютно:

У меня есть приложение для узла, которое я написал и которое я запускаю следующим образом:

node.exe app.js inputArg

Есть ли какой-нибудь способ, которым я могу упаковать это в .exe самостоятельно? Так что я могу сделать что-то подобное?

У меня есть способ подделать это с помощью командного файла, поэтому я могу сделать это:

Но для этого необходимо, чтобы у меня были все зависимости и узел в этой папке, что не идеально.

Есть несколько альтернатив, как бесплатных, так и коммерческих. Я не использовал ни одного из них, но теоретически они должны работать:

Большинство из них потребует от вас сохранить командный файл в качестве основного исполняемого файла, а затем связать node.exe и ваши скрипты.

В зависимости от вашего сценария у вас также есть возможность перенести его на JSDB , который поддерживает простой способ создания исполняемых файлов , просто добавляя к нему ресурсы.

Третье квази-решение - сохранить узел где-то вроде C:\utils и добавить эту папку в переменную окружения PATH . Затем вы можете создавать .bat-файлы в этом каталоге, который запускает node + ваши предпочтительные сценарии - я получил coffee от coffeescript, работающий с Windows таким образом. Эта настройка может быть автоматизирована с помощью пакетного файла, VB-скрипта или установщика.

Решение, которое я использовал, это Roger Wang's node-webkit .

Это фантастический способ упаковки приложений nodejs и их распространения, он даже дает вам возможность "связать" все приложение в один исполняемый файл. Он поддерживает Windows, Mac и Linux.

Здесь это несколько документов по различным вариантам развертывания приложений node-webkit, но вкратце вы делаете следующее:

  1. Заархивируйте все ваши файлы с пакетом .json в корне
  2. Измените расширение с .Zip на .nw
  3. copy/b nw.exe + app.nw app.exe

Так же, как добавленное примечание - я поставил несколько производственных приложений box/install cd, используя это, и это отлично работает. Это же приложение работает на Windows, Mac, Linux и через Интернет.

Для тех, кто сталкивается с этим вопросом, теперь есть два проекта, которые создают exe-файлы из ваших проектов узлов: Pkg и Electron.atom.io , они немного отличаются:

  1. Pkg скомпилирует ваш проект в нативный код, они также включают ресурсы и установку nodejs (системе не нужно устанавливать nodejs для выполнения .exe). ). Ваш исходный код не будет включен. Получающийся исполняемый файл - ТОЛЬКО для Windows (.exe). Все платформы поддерживаются. Теперь требуется лицензия на коммерческие продукты. Полностью с открытым исходным кодом.
  2. Electron.atom.io , хотя он не будет сжимать и генерировать .exe для вас, он МОЖЕТ использоваться для распространения приложений nodejs, поскольку они предлагают способ распространять приложения . Преимущества в том, что Electron является мультиплатформенным (Windows, Mac OSX, Linux), минусы в том, что ваш исходный код будет включен, даже если они предлагают способ распространения вашего приложения в архиве asar , Это не будет пуленепробиваемым, но все же лучше, чем ваш источник на равнине.

По умолчанию Windows связывает .js файлы с Windows Script Host , автономным механизмом выполнения JS от Microsoft. Если вы введете script.js в командной строке (или дважды щелкните файл .js в Проводнике), сценарий будет выполнен wscript.exe .

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

Конечно, если - как и я - вы связали .js файлы с редактором, так что двойной щелчок по ним откроет ваш любимый текстовый редактор, это предложение не принесет много пользы. Вы также можете добавить пункт меню, вызываемый правой кнопкой мыши "Выполнить с узлом" для файлов .js , хотя эта альтернатива не решает ваши потребности командной строки.

Возможно, самое простое решение - просто использовать командный файл - вам не нужно иметь копию Node в папке, в которой находится ваш скрипт. Просто обращайтесь к исполняемому файлу Node абсолютно:

Так как это, вероятно, представляет относительно широкий интерес, я пошел дальше и сделал это доступно на GitHub , включая скомпилированный exe , если вам нравится входить в фургоны с незнакомцами.

Лучший инструмент, который я знаю, это инструмент NodeJS: zeit/pkg

Он очень прост в использовании (гораздо больше, чем Nexe, просто в качестве примера), вы можете просто установить глобально: npm install -g pkg

создать исполняемые файлы для macOS, Linux и Windows:

У меня был немного сложный код, который использовал сервер сокетов NodeJS, я пробовал разные приложения, ни одно из них не создавало его должным образом, кроме zeit/pkg .

Так как на этот вопрос был дан ответ, было запущено другое решение.

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

Правка: AppJS больше не активен, но сам по себе предлагает форк под названием дескшелл.

После установки JXcore в Windows все, что вам нужно сделать, это запустить:

В результате будет создан файл .exe, который вы можете распространять и который можно выполнять без каких-либо внешних зависимостей (вам даже не нужны ни JXcore, ни Node.js в системе).

Изменить 2018

Еще не пробовал, но nexe выглядит так, как будто nexe может сделать это:

disclose по существу делает самораспаковывающийся exe-файл из вашего проекта Node.js и интерпретатора Node.js со следующими характеристиками:

  1. Нет графического интерфейса Чистый CLI.
  2. Нет зависимостей во время выполнения
  3. Поддерживает как Windows, так и Unix
  4. Запускается медленно в первый раз (извлекается в каталог кэша), затем быстро навсегда

Я создал новый проект под названием node-compiler , чтобы скомпилировать ваш проект Node.js в один исполняемый файл.

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

Кроме того, он перенаправляет запросы файлов и каталогов прозрачно в память, а не в файловую систему во время выполнения. Так что для запуска скомпилированного продукта не требуется никакого исходного кода.

Сравнивая с аналогичными проектами,

Я рекомендую вам BoxedApp для этого. Это коммерческий продукт, который работает очень хорошо. Это работает для любого приложения NodeJS. Конечный пользователь получит только один EXE-файл для вашего приложения. Нет необходимости в установке.

Например, в Electron конечному пользователю необходимо установить/распаковать ваше приложение, и он увидит все исходные файлы вашего кода.

BoxedApp Он упаковывает все файлы и зависимости, которые нужны вашему приложению NodeJS. Он поддерживает сжатия, и скомпилированный файл работает на Windows XP +

Когда вы используете его, обязательно добавьте Node.EXE в скомпилированное приложение. Выберите версию узла, которая поддерживает Windows XP (если вам это нужно)

Программа поддерживает аргументы командной строки, поэтому после пакета вы можете сделать

И вы можете получить аргумент в коде вашего узла:

Иногда ваше приложение имеет зависимости файлов, поэтому в BoxedApp вы можете добавить любую папку и файл в качестве зависимости, например, вы можете вставить файл настроек.

Дополнительная информация:

Просто примечание: обычно я рекомендую использовать программное обеспечение с открытым исходным кодом/свободное программное обеспечение, но в этом случае я не нашел ничего, что могло бы выполнить работу.

Надоело начинать с победы из командной строки, а затем я столкнулся с этим. Слегка улучшенная версия за что josh3736 . Это использует файл XML, чтобы получить несколько настроек. Например, путь к Node.exe , а также файл для запуска в стандартном app.js. Кроме того, среда для загрузки (production, dev и т.д.), Которую вы указали в своем app.js (или server.js или как вы его называли). По сути, он добавляет NODE_ENV= , где - это имя вашей конфигурации в app.js как переменная для вас. Вы делаете это, изменяя элемент "mode" в config.xml. Вы можете получить проект здесь ==> github . Обратите внимание, что в событиях Post Build вы можете изменить пути копирования для автоматического копирования вашего config.xml и исполняемого файла в каталог Nodejs , просто чтобы сохранить шаг. В противном случае отредактируйте их или ваша сборка выдаст предупреждение.

Я изучал эту тему в течение нескольких дней, и вот что я нашел. Варианты делятся на две категории:

Если вы хотите создать настольное приложение, лучшие варианты:

1- NW.js : позволяет вам вызывать все модули Node.js напрямую из DOM и обеспечивает новый способ написания приложений со всеми веб-технологиями.

2- Electron : Создание кросс-платформенных приложений для настольных ПК с использованием JavaScript, HTML и CSS

Вот хорошее сравнение между ними: Сравнение NW.js & Electron . Я думаю, что NW.js лучше, и он также предоставляет приложение для компиляции файлов JS. Есть также несколько автономных сборщиков исполняемых файлов и инсталляторов, таких как Enigma Virtual Box . Они оба содержат встроенную версию Chrome, которая не нужна для серверных приложений.

если вы хотите упаковать серверное приложение, это лучшие варианты:

node-compiler : Компилятор с опережением времени (AOT), разработанный для Node.js, который просто работает.

Nexe : создайте один исполняемый файл из ваших приложений node.js

Я считаю, что в этой категории лучше работает нод-компилятор, который поддерживает динамические модули require и собственные нодовые модули. Он очень прост в использовании, и его выход начинается с 25 МБ. Полное сравнение с другими решениями вы можете прочитать на Node странице компилятора. Я мало читал о Nexe, но сейчас, похоже, Node Компилятор не компилирует файл js в двоичный формат с помощью функции снимка V8, но он запланирован для версии 2. Он также собирается собрать В установщик-строитель.

Читайте также: