Как скомпилировать node js в exe

Компиляция файла .hta в .exe

Я искал по всему миру способ скомпилировать мой .hta файл (и ресурсы) в файл .exe.

Есть много приложений, которые утверждают, что могут это сделать, но они не работали для этого приложения — это смесь javascript и VB.

Просто, (и наивно), я не хочу, чтобы люди смотрели/вворачивали код. Любые предложения или решения будут высоко оценены.

EDIT: Конечно, я понимаю, что javascript и VB не являются "компилятивными", поскольку они интерпретируются на языках. Я просто ищу способ по-настоящему скрыть источник.

Вы можете "скомпилировать exe", просто обернув HTA в исполняемый файл, который знает, как настроить контекст/окно HTA.

Самый тривиальный подход (который звучит как ExeScript) заключается в том, чтобы сначала извлечь HTA/ресурсы, а затем выполнить их. Теоретически можно сделать это без временных файлов, введя данные в рабочий контекст IE, но задача становится более сложной. Внутренний JS может быть или не быть запутанным, и оболочка может или не может добавить дополнительный слой обфускации/ "шифрования". (PayMo, и я уверен, что есть другие, использует обернутый контекстный подход для распространения одного исполняемого exe).

Если защита "интеллектуальной собственности" является целью, нанять хорошего адвоката: -)

Попробуйте использовать VBSedit, он определенно работает для преобразования как vbs, так и hta в exe

HTAEdit, который поставляется вместе с VBSedit, действительно не скрывает hta-код. Во время выполнения он извлекает исходный файл hta в подкаталог в% temp% и передает его в mshta.exe для выполнения. Преобразованный exe, созданный VBSedit, похоже, не делает этого, насколько я могу судить.

Я не уверен в компиляции в exe, но если вы минимизируете и запутываете исходный код, если у вас нет чего-то невероятно ценного, было бы огромной работой по обратному инженерному программированию.

Вам не нужен компилятор, вам нужен шифр/дешифратор, например, мой проект (в стадии разработки), проект CFS (Cryptographica File Security).

Моя подсказка — создать файл VBScript или JScript для HTA, который будет динамически генерироваться. Поэтому вы не компилируете HTA, а script. Этот подход отвечает вашим требованиям безопасности намного лучше, чем HTA, упакованным в SFX.

Сначала подготовьте ресурсы — импортируйте в HTA все внешние файлы: скрипты, таблицы стилей и изображения (base64-encoded), чтобы сделать ваше автономное приложение HTA. Затем создайте, например, файл VBScript, и скопируйте все содержимое HTML из вашего HTA в строковую переменную в script, заменив новые строки и символы табуляции на " & vbCrLf & " и " & vbTab & " . Добавьте код в динамически создайте окно HTA, .write() эту строковую переменную в документ окна и закройте script.

Обратите внимание, что Window_OnLoad() может не работать должным образом из-за нажатия содержимого в окно, которое уже было загружено.

Затем просто зашифруйте свой завершенный VBScript в exe (используя настоящую программу шифрования, например Primal Script 2012, ExeScript, VbsEdit или ScriptCryptor). И измените значок с помощью PE Explorer.

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

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

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

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

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

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

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

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

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

Здесь был ответ: Безопасное распространение приложений NodeJS . Raynos сказал: V8 позволяет предварительно скомпилировать JavaScript.

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

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

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

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

Как сделать exe файлы из приложения node.js?

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

node.exe app.js inputArg

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

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

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

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

  • Iexpress (родной инструмент Windows)
  • Компилятор быстрых пакетных файлов (коммерческий)
  • BoxedApp Packer
  • "Advanced" Batch To EXE Converter " (бесплатная версия)

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

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

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

Решением, которое я использовал, является 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 и через Интернет.

Для тех, кто сталкивается с этим вопросом, теперь есть два проекта, которые создают 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 в проводнике), Script выполняется wscript.exe .

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

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

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

Другой альтернативой является это очень простое приложение С#, которое запустит Node, используя свое собственное имя файла + .js в качестве Script для запуска и передаст любые аргументы командной строки.

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

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

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

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

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

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

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

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

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

Здесь есть много хороших ответов, но они не так просты, как JXcore.

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

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

Изменить 2018

Этот проект сейчас мертв, но он все еще находится здесь: https://github.com/jxcore/jxcore-release (спасибо @Elmue)

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

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

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

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

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

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

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

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

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

  • Компания
  • Продукт
  • Скачать пробную версию

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

Бит поздно на этом, но на основе ответа , я создал быстрое сообщение о том, как это сделать, используя Advanced" Batch To EXE Converter

Я нашел, что любое из этих решений удовлетворяет моим требованиям, поэтому сделала свою собственную версию node, называемую node2exe, которая делает это. Он доступен из https://github.com/areve/node2exe

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *