2017-01-02 2 views
3

Я работаю над приложением узла js и теперь готов к использованию. Я хочу сделать exe этого приложения, чтобы его можно было использовать для коммерческого использования.node js - Как создать сборку для коммерческого использования?

До сих пор я использовал enclose модуль, с помощью которого я скомпилировал код приложения, но я обнаружил некоторые проблемы в этом (приложение потерпело крах в режиме ожидания). Приложение работает хорошо, не прилагая или скомпилированный код.

Я искал на Google и нашел некоторые альтернативные модули, такие как JXcore, узел WebKit и Electron и т.д., но ошибка ядра JX дает такое же, как и в SO question.

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

Я также пробовал jxcore. Основная проблема с exe и с модулями, которые мы используем, - это их способность работать с родными модулями, в моем случае - с модулем Kinect.node. Этот модуль нельзя скомпилировать. Нам нужно обходное решение, чтобы упаковать только это вместе с нашим .exe-файлом. Enclose обеспечивает это обходное решение во встроенных функциях.

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

В случае Электрон, Он поддерживает только Electron-based application source code. Поэтому, если я выберу это, мне придется изменить код приложения.

Так может ли кто-нибудь предложить мне, что я могу сделать, чтобы сделать exe-файл из кода узла js там?

Спасибо!

+1

Если вам нужен исполняемый файл, поэтому вам необходимо использовать некоторую среду, которая понимает, что она определена для правильной компиляции. Конечно, если вы написали свой webapp и хотите отправить его как коммерческий продукт, по крайней мере вам нужен какой-то исполняемый файл, который будет работать в фоновом режиме: 'node app.js' для связи с ним. – num8er

+0

Например, скажем, ваше приложение работает на 3000 портах, имеет прекрасный интерфейс, построенный с помощью бутстрапа и т. Д. Но вам нужен исполняемый файл, который будет управлять всеми процессами.Таким образом, вы можете написать приложение веб-браузера (без элементов управления браузером) с помощью C# и заставить его автоматически запускать приложение nodejs в bg и после открытого компонента веб-браузера и перейти на localhost: 3000 – num8er

+0

Я использовал модуль enclose узла js, который компилирует код и создает исполняемый файл (.exe), но это вызывает проблему. Не могли бы вы проверить здесь. http://stackoverflow.com/questions/41426213/node-app-created-by-enclose-module-getting-shuts-down-on-idle-in-production-mode – Deep

ответ

2

Я получил мой ответ:

Первый, причина была база DiskDB, она не совместима с WebKit узлом так, поэтому я получаю сообщение об ошибке родных модулей.

Теперь я использую модуль для локальной базы данных sqlite3. Это лучше, чем DiskDB.

Во-вторых, Одной из причин была бесплатная версия enclose. Платная версия модуля Enclose JS игнорирует проблему с таймаутом, которую я получаю.

Таким образом, я решил свой вопрос.

4

У меня была такая же проблема, как раньше, приложение js узла закрывается при работе в фоновом режиме. теперь я использую диспетчер процессов2 (pm2), он работает нормально, и если приложение сбой по какой-либо другой причине, он автоматически запускается снова.

+0

, так что это поможет в приложении, скомпилированном с модулем enclose ? – Deep

+0

Смешно использовать pm2 для настольных приложений. (: – num8er