नोड.एजेएस ऐप से एक्साई फाइलें कैसे बनाएं?


123

मेरे पास एक नोड ऐप है जो मैंने लिखा था, जो मैं निम्नानुसार चलाता हूं:

node.exe app.js inputArg

क्या कोई तरीका है जिससे मैं इसे एक .exe में खुद से पैकेज कर सकूं? तो मैं बस कुछ ऐसा कर सकता हूं?

App.exe inputArg

मेरे पास बैच फ़ाइल का उपयोग करके इसे हटाने का कोई तरीका है, इसलिए मैं यह कर सकता हूं:

App.bat inputArg

लेकिन इसके लिए आवश्यक है कि मेरे पास उस फ़ोल्डर में सभी निर्भरताएं और नोड हों, जो आदर्श नहीं है।




उपकरणों की एक अच्छी सूची यहाँ है: stackoverflow.com/a/12486874/32679
Grrr

1
मुझे लगता है कि किसी को भी यहां जवाब जोड़ने पर विचार करने की जरूरत है अगर यह पहले से ही किया गया है। यह प्रश्न विभिन्न गुणवत्ता / गतिविधि के विभिन्न खुले स्रोत उत्पादों के लिंक के ढेर में बदल रहा है।
लियाम

जवाबों:


35

वहाँ कुछ विकल्प, दोनों मुक्त और वाणिज्यिक। मैंने उनमें से किसी का उपयोग नहीं किया है, लेकिन सिद्धांत रूप में उन्हें काम करना चाहिए:

अधिकांश को आपको बैच फ़ाइल को मुख्य निष्पादन योग्य रखने की आवश्यकता होगी, और फिर नोड.exe और अपनी स्क्रिप्ट बंडल करें।

आपकी स्क्रिप्ट के आधार पर, आपके पास इसे JSDB पर पोर्ट करने का विकल्प भी है , जो केवल संसाधनों को जोड़कर इसे निष्पादित करने के लिए एक आसान तरीका का समर्थन करता है।

एक तीसरा अर्ध-समाधान नोड को कहीं C:\utilsऔर रखना है और इस फ़ोल्डर को अपने PATHपर्यावरण चर में जोड़ना है । फिर आप उस dir में .bat फाइलें बना सकते हैं जो नोड + आपकी पसंदीदा स्क्रिप्ट को चलाती है - मुझे coffeeइस तरह से खिड़कियों पर कॉफ़ीस्क्रिप्ट काम करना मिल गया । यह सेटअप बैच फ़ाइल, vb स्क्रिप्ट या इंस्टॉलर के साथ स्वचालित किया जा सकता है।


ये अच्छे दिखते हैं और ऐसे दिखते हैं जैसे वे वही कर सकते हैं जो मैं उन्हें चाहता हूं। मैं इसे एक शॉट दूंगा और आपको वापस मिलूंगा।
ऐश्वर

2
मैंने "उन्नत" बैच को EXE कनवर्टर करने की कोशिश की, और यह एक आकर्षण की तरह काम किया। आप EXE फ़ाइल में निर्भरता पैकेज कर सकते हैं। सहायता के लिए धन्यवाद।
ऐश्वर

1
@ ऐश्वर, लेकिन आप नोड_मॉडल्स फ़ोल्डर को बंडल नहीं कर सकते, इसलिए आप इसमें कुछ भी उन्नत नहीं कर सकते ...
Clint

क्या होगा यदि आप ज़िप / आरएआर नोड_मॉड्यूल्स, और जब एप्लिकेशन चलता है तो एक टेम्प डायरेक्टरी में निकालें? थोड़ा धीमा हो सकता है, अगर आपको बहुत सारे मॉड्यूल मिल गए हैं, हालांकि।
जारोद मेसेन

55

मैंने जो हल इस्तेमाल किया है वह रोजर वांग का नोड-वेबकिट है

यह नोडज एप्लिकेशन को पैकेज करने और उन्हें वितरित करने का एक शानदार तरीका है, यह आपको पूरे एप्लिकेशन को एक एकल निष्पादन योग्य के रूप में "बंडल" करने का विकल्प भी देता है। यह विंडोज़, मैक और लिनक्स का समर्थन करता है।

नोड-वेबकिट एप्लिकेशन को तैनात करने के विभिन्न विकल्पों पर यहां कुछ डॉक्स दिए गए हैं, लेकिन संक्षेप में, आप निम्नलिखित कार्य करते हैं:

  1. अपनी सभी फ़ाइलों को ज़िप करें, मूल में एक package.json के साथ
  2. एक्सटेंशन को .zip से .nw पर बदलें
  3. कॉपी / बी nw.exe + app.nw app.exe

बस एक जोड़ा नोट के रूप में - मैं कई उत्पादन बॉक्स भेज दिया है / इस का उपयोग कर सीडी अनुप्रयोगों को स्थापित, और यह बहुत अच्छा काम किया है। एक ही ऐप विंडोज़, मैक, लिनक्स और वेब पर चलता है।

अद्यतन: परियोजना का नाम बदल कर 'nw.js' हो गया है और यहाँ ठीक से स्थित है: nw.js


1
बस कोशिश की, महान काम किया! और यह इंटेल के लोगों द्वारा समर्थित है।
टिमो हुओवेंन

यह आज की तरह सही और सबसे वर्तमान उत्तर होना चाहिए। यहां यह भी देखें नोड वेबकिट cheatsheet: gist.github.com/LeCoupa/80eca2716a2b13c37cce अन्य तीव्रता से उपयोगी (या संकट के आधार बाइट कोड के लिए नीचे कैसे पुराने जमाने आप शब्द के बारे में होना चाहता हूँ पर कैसे जे एस संकलित करने के लिए की तरह सामान कम से कम शामिल "संकलन")।
एरिक रेपेन 16

मुझे यह उत्तर पसंद है, हालांकि यह अभी भी एक स्वसंपूर्ण निर्वासन नहीं बनाता है। Github में Intel और nw.js के अनुसार आपको अभी भी कम से कम दो अन्य फ़ाइलों को एक ही फ़ोल्डर में रखने की आवश्यकता है: nw.pak और icudt.dll। आप एक स्टैंड-अलोन exe कैसे बनाते हैं?
जेफ बेकर

@JeffBaker यदि आप github पर डॉक्स में थोड़ा नीचे देखते हैं, तो आप इसे देख सकते हैं: github.com/nwjs/nw.js/wiki/… जो आप कर सकते हैं यदि आप अतिरिक्त फ़ाइलों को शामिल नहीं करना चाहते हैं।
क्लेटन गुलिक

@Clayton, Nw.js chrome.com के साथ ही है। developer.chrome.com/apps/migration#native
पचेरियर

29

इस प्रश्न पर ठोकर खाने वाले लोगों के लिए, अब दो परियोजनाएँ हैं जो आपके नोड प्रोजेक्ट्स, Pkg और Electron.atom.io से बाहर निकलती हैं , वे थोड़े अलग हैं:

  1. Pkg आपकी परियोजना को मूल कोड में संकलित करेगा, उनमें संपत्ति और एक नोडज इंस्टॉलेशन भी शामिल है (सिस्टम को .exe निष्पादित करने के लिए नोडज स्थापित करने की आवश्यकता नहीं होगी)। आपका स्रोत कोड शामिल नहीं किया जाएगा। परिणामी निष्पादन योग्य Windows केवल (.exe) है। सभी प्लेटफ़ॉर्म अब समर्थित हैं। अब इसे वाणिज्यिक उत्पादों के लिए लाइसेंस की आवश्यकता है। पूरी तरह से खुला स्रोत।
  2. Electron.atom.io जबकि यह आपके लिए कॉम्पैक्ट और एक .exe उत्पन्न नहीं करेगा, लेकिन इसका उपयोग नोडज एप्लिकेशन को वितरित करने के लिए किया जा सकता है क्योंकि वे अनुप्रयोगों को वितरित करने का एक तरीका प्रदान करते हैं । लाभ यह है कि इलेक्ट्रॉन मल्टी-प्लेटफ़ॉर्म (विंडोज़, मैक ओएसएक्स, लिनक्स) है, विपक्ष हैं कि आपके स्रोत कोड को शामिल किया जाएगा, यहां तक ​​कि कठिन वे आपके ऐप को एक एसार आर्क के अंदर वितरित करने का एक तरीका प्रदान करते हैं । यह बुलेटप्रूफ नहीं होगा, लेकिन यह अभी भी सादे में अपने स्रोत से बेहतर है।

2
कृपया अपडेट करें: अब लिनक्स और ओएस एक्स का समर्थन करें।
000000000000000000000

संपादित टिप्पणी! @ 000000000000000000000
सोकी

EncloseJS जाने का रास्ता है। मैं इसे अभी कोशिश कर रहा हूँ! अपना उत्तर जोड़ने के लिए धन्यवाद! +1 :)
22

मैं EncloseJS स्थापित नहीं कर सकता। यह कहते हैं कि एरर कोड ELIFECYCLE बिना किसी उपयोगी त्रुटि संदेश के।
एल्म्यू

2
EncloseJS किसी भी अधिक बनाए रखा नहीं है। उत्तराधिकारी ज़ीट / pkg ( npmjs.com/package/pkg ) प्रतीत होता है
लुकास गॉन्ज

21

डिफ़ॉल्ट रूप से, विंडोज़ विंडोज़ स्क्रिप्ट होस्ट , माइक्रोसॉफ्ट के स्टैंड-अलोन जेएस रनटाइम इंजन के .jsसाथ फाइलों को जोड़ती है । यदि आप कमांड प्रॉम्प्ट पर script.js टाइप करते हैं (या एक्सप्लोरर में किसी फाइल को डबल-क्लिक करते हैं ), तो स्क्रिप्ट निष्पादित होती है ।.jswscript.exe

यह हो सकता है एक वैश्विक सेटिंग के साथ एक स्थानीय समस्या को हल करने के लिए, लेकिन आप सकता सहयोगी .js के साथ फ़ाइलें node.exeबजाय, ताकि टाइपिंग script.js एक आदेश पर शीघ्र या स्क्रिप्ट पर डबल क्लिक / खींच आइटम उन्हें नोड के साथ शुभारंभ करेंगे।

बेशक, अगर मेरी तरह - आपने .jsएक संपादक के साथ फाइलें संबद्ध की हैं ताकि डबल क्लिक करने से वे आपके पसंदीदा पाठ संपादक को खोल सकें, तो यह सुझाव बहुत अच्छा नहीं होगा। आप फ़ाइलों में "नोड के साथ निष्पादित करें" की राइट-क्लिक मेनू प्रविष्टि भी जोड़ सकते हैं .js, हालांकि यह विकल्प आपकी कमांड-लाइन की जरूरतों को हल नहीं करता है।


सबसे सरल समाधान शायद एक बैच फ़ाइल का उपयोग करना है - आपके पास उस फ़ोल्डर में नोड की प्रतिलिपि होना आवश्यक नहीं है जिसमें आपका निवास है। बस नोड निष्पादन योग्य का संदर्भ लें:

"C:\Program Files (x86)\nodejs\node.exe" app.js %*

एक अन्य विकल्प यह बहुत ही सरल सी # ऐप है जो नोड को अपने स्वयं के फ़ाइल नाम + का उपयोग करके .jsस्क्रिप्ट चलाने, और किसी भी कमांड लाइन तर्क के साथ पारित करने के लिए शुरू करेगा ।

class Program
{
    static void Main(string[] args)
    {
        var info = System.Diagnostics.Process.GetCurrentProcess();
        var proc = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files (x86)\nodejs\node.exe", "\"" + info.ProcessName + ".js\" " + String.Join(" ", args));
        proc.UseShellExecute = false;
        System.Diagnostics.Process.Start(proc);
    }
}

इसलिए यदि आप परिणामी EXE "app.exe" का नाम देते हैं, तो आप टाइप कर सकते हैं app arg1 ...और नोड को कमांड लाइन के साथ शुरू किया जाएगा "app.js" arg1 ...। नोट C # बूटस्ट्रैपर ऐप तुरंत बाहर निकल जाएगा, जिससे कंसोल विंडो के प्रभारी नोड निकल जाएंगे।

चूँकि यह शायद अपेक्षाकृत व्यापक हित है, इसलिए मैंने आगे बढ़कर इसे GitHub पर उपलब्ध कराया , जिसमें संकलित निर्वासन शामिल है यदि अजनबियों के साथ वैन में जाना आपकी बात है।


जैसा कि आपने उल्लेख किया है, यह मेरे मुद्दे को एक आदर्श तरीके से हल नहीं करता है। लेकिन दिलचस्प पठन के लिए +1
आयुष

@ ऐश्वर, मैंने एक सरल ऐप जोड़ा है जो आपके लिए नोड लॉन्च करेगा। संपादन देखें।
josh3736

@ josh3736 आपके exe को अभी भी उसी फ़ोल्डर में नोड.exe की आवश्यकता है?
रिकार्डो तोमासी

@ रीकार्डोमासी, सं। यह मानता है कि नोड आपके सिस्टम के प्रोग्राम फाइल्स डायरेक्टरी में स्थापित है (जहां इंस्टॉलर इसे डालता है)।
josh3736

@ josh3736 यह एक दिलचस्प समाधान है। मुझे पसंद है कि आपने क्या किया है, काश मैं फिर से +1 करता :)। लेकिन यह अभी भी आदर्श नहीं है, क्योंकि इसके लिए उपयोगकर्ता को नोड .js स्थापित करने और मानक पथ में होना आवश्यक है।
ऐश्वर

20

सबसे अच्छा उपकरण मुझे पता है NodeJS उपकरण: zeit / pkg

इसका उपयोग करना बहुत आसान है (उदाहरण के रूप में, नेक्स की तुलना में बहुत अधिक), आप बस विश्व स्तर पर स्थापित कर सकते हैं: npm install -g pkg

macOS, Linux और Windows के लिए निष्पादनयोग्य बनाने के लिए:

pkg exampleApp.js

मेरे पास कुछ जटिल कोड थे जो NodeJS सॉकेट सर्वर का उपयोग करते थे, मैंने विभिन्न अनुप्रयोगों की कोशिश की, उनमें से किसी ने इसे ठीक से नहीं बनाया, सिवाय zeit / pkg के


मैंने एक एक्ज़िम फ़ाइल में एक Appium स्थापना को कॉम्पैक्ट करने की कोशिश की और zeit / pkg पूरी तरह से विफल हो गया। डिस्क पर 310MB से 18MB की एक छोटी Exe फ़ाइल हुई, जो स्पष्ट रूप से बिल्कुल भी काम नहीं करती थी।
एल्म्यू


12

चूंकि इस सवाल का जवाब दिया गया है, इसलिए एक और समाधान शुरू किया गया है।

https://github.com/appjs/appjs

इस लेखन के समय, यह एक निष्पादन योग्य में संकलित डाउन क्रोमियम पैकेज के माध्यम से नोड नोड्स की पैकेजिंग के लिए अंतिम-समाधान है।

संपादित करें: AppJS अब सक्रिय नहीं है, लेकिन खुद को एक कांटा कहा जाता है जिसका नाम है डेस्क।

https://github.com/sihorton/appjs-deskshell/


1
एक टूटी हुई कड़ी लगता है।
स्टारबिम्रेनबोल्ब्स 15

1
यह प्रोजेक्ट अब सक्रिय नहीं है। क्लेटन गुलिक द्वारा उल्लिखित एक विकल्प के लिए नोड-वेबकिट देखें।
कुक्कस

Appjs खुद को एक सक्रिय कांटा बताता है जिसे deskshell github.com/sihorton/appjs-deskshell
बिटकॉइन

11

यहाँ बहुत सारे अच्छे उत्तर हैं, लेकिन वे सभी JXcore की तरह सीधे नहीं हैं ।

एक बार जब आप JXcore को विंडोज़ पर स्थापित कर लेते हैं, तो आपको केवल इतना करना होता है:

jx package app.js "myAppName" -native

यह एक .exe फ़ाइल का उत्पादन करेगा जिसे आप वितरित कर सकते हैं और बिना किसी बाहरी निर्भरता के निष्पादित किया जा सकता है (आपको सिस्टम पर JXcore और Node.js की भी आवश्यकता नहीं है)।

यहाँ उस कार्यक्षमता पर प्रलेखन है: http://jxcore.com/packaging-code-protection/#cat-74

2018 संपादित करें

यह परियोजना अब मृत हो गई है लेकिन यह अभी भी यहां होस्ट की गई है: https://github.com/jxcore/jxcore-release (धन्यवाद @Elmue)


1
धन्यवाद दोस्त। क्या मैं विंडोज से लिनक्स को निष्पादन योग्य बना सकता हूं?
ससिवर्णन

1
जहाँ तक मुझे पता है, नहीं, आप नहीं कर सकते। मुझे लगता है कि JXCore निष्पादन योग्य बनाने के लिए OS से कुछ फ़ाइलों को पकड़ लेता है, और यह उन फ़ाइलों को पैकेज नहीं करता है, इसलिए यदि आप लिनक्स को निष्पादन योग्य बनाना चाहते हैं, तो आपको लिनक्स पर इस कमांड को चलाना होगा।
नेपोक्सक्स

2
JXcore ने विकास को रोक दिया है nubisa.com/nubisa-halting-active-development-on-jxcore-platform
user619271

1
यहां सभी लिंक मृत हैं। यह काम करता है: github.com/jxcore/jxcore-release
Elmue

7

कोशिश करें disclose: https://github.com/pmq20/disclose

disclose अनिवार्य रूप से आपकी Node.js परियोजना और Node.js दुभाषिया के साथ निम्नलिखित विशेषताओं के साथ एक एक्सट्रैक्टिंग एक्साई बनाता है,

  1. कोई GUI नहीं। शुद्ध सीएलआई।
  2. कोई रन-टाइम निर्भरता नहीं
  3. विंडोज और यूनिक्स दोनों का समर्थन करता है
  4. पहली बार धीरे-धीरे चलता है (कैशे डायर को हटाते हुए), फिर हमेशा के लिए तेज़

कोशिश करें node-compiler: https://github.com/pmq20/node-compiler

मैंने node-compilerआपके Node.js प्रोजेक्ट को एक एकल निष्पादन योग्य में संकलित करने के लिए एक नई परियोजना बनाई है ।

यह इससे बेहतर है discloseकि यह पहली बार धीरे-धीरे नहीं चलता है, क्योंकि आपके स्रोत कोड को Node.js दुभाषिया के साथ संकलित किया गया है, ठीक मानक Node.js पुस्तकालयों की तरह।

इसके अतिरिक्त, यह फ़ाइल और डायरेक्टरी अनुरोध को रनटाइम पर फ़ाइल सिस्टम के बजाय मेमोरी में पारदर्शी रूप से रीडायरेक्ट करता है। ताकि संकलित उत्पाद को चलाने के लिए कोई स्रोत कोड की आवश्यकता न हो।

यह कैसे काम करता है: https://speakerdeck.com/pmq20/node-dot-js-compiler-compiling-your-node-dot-js-application-into-a-single-executable

समान परियोजनाओं की तुलना में,

  • pkg ( https://github.com/zeit/pkg ): Pkg हैक की गई fs। * एपीआई-पैकेज फाइलों तक पहुँचने के लिए गतिशील रूप से एपीआई, जबकि Node.js कम्पाइलर उन्हें अकेला छोड़ देता है और इसके बजाय कामेच्छा के माध्यम से एक गहरे स्तर पर काम करता है। Pkg इन-पैकेज फ़ाइलों को संग्रहीत करने के लिए JSON का उपयोग करता है, जबकि Node.js कंपाइलर अपने डेटा संरचना के रूप में अधिक परिष्कृत और व्यापक रूप से उपयोग की जाने वाली स्क्वाशएफ का उपयोग करता है।

  • EncloseJS ( http://enclosejs.com/ ): EncloseJS केवल पाँच fs के लिए इन-पैकेज फ़ाइलों तक पहुँच को प्रतिबंधित करता है। * API's, जबकि Node.js कंपाइलर सभी fs का समर्थन करता है। * एपीआई का। EncloseJS मालिकाना लाइसेंस है और जब Node.js कंपाइलर MIT- लाइसेंस प्राप्त होता है, तब पैसे खर्च होते हैं और उपयोगकर्ता इसे इस्तेमाल करने और इसे संशोधित करने के लिए स्वतंत्र होते हैं।

  • Nexe ( https://github.com/nexe/nexe ): नेक्साइज़ के उपयोग के कारण नेक्स डायनेमिक आवश्यकता का समर्थन नहीं करता है, जबकि Node.js कंपाइलर आवश्यकता सहित सभी प्रकार की आवश्यकता का समर्थन करता है। समाधान।

  • asar ( https://github.com/electron/asar ): असार JSON का उपयोग फ़ाइलों की जानकारी को संग्रहीत करने के लिए करता है जबकि Node.js कंपाइलर स्क्वाश का उपयोग करता है। Asar कोड संग्रह और निष्पादन योग्य को अलग रखता है जबकि Node.js कंपाइलर सभी JavaScript स्रोत कोड को Node.js वर्चुअल मशीन के साथ जोड़ता है और अंतिम उत्पाद के रूप में एकल निष्पादन योग्य बनाता है।

  • AppImage ( http://appimage.org/ ): AppImage स्क्वाश का समर्थन करने वाले कर्नेल के साथ केवल लिनक्स का समर्थन करता है, जबकि Node.js कंपाइलर लिनक्स के सभी तीन प्लेटफार्मों, मैकओएस और विंडोज का समर्थन करता है, इस बीच कर्नेल से किसी विशेष सुविधा की आवश्यकता के बिना।


@ StéphaneLaurent नोड-संकलक की जाँच करें, यह निश्चित रूप से exe के साथ कमांड-लाइन तर्क का उपयोग करने का समर्थन करता है।
मीनकी पान

अगस्त 30, 2017 (2 साल पहले) पर नवीनतम प्रतिबद्ध। बंद ?!
थच लॉकवैन

4

मैं उसके लिए आपको BoxedApp की सिफारिश कर रहा हूं। यह एक व्यावसायिक उत्पाद है जो बहुत अच्छा काम करता है। यह किसी भी NodeJS ऐप के लिए काम करता है। एंड-यूज़र को आपके ऐप के लिए सिर्फ एक EXE फ़ाइल मिलेगी। स्थापना के लिए कोई ज़रूरत नहीं है।

उदाहरण के लिए, इलेक्ट्रॉन में, अंतिम उपयोगकर्ता को आपके ऐप को इंस्टॉल / अनसॉल्व करना होगा, और वह आपके कोड की सभी सोर्स फाइल्स को देखेगा।

BoxedApp यह उन सभी फ़ाइलों और निर्भरताओं की पैकेजिंग करता है, जिनकी आपके NodeJS ऐप को ज़रूरत है। यह कंप्रेशन का समर्थन करता है, और संकलित फ़ाइल विंडोज एक्सपी + पर काम करती है

जब आप इसका उपयोग करते हैं, तो संकलित ऐप में Node.EXE जोड़ना सुनिश्चित करें। Windows XP का समर्थन करने वाला नोड संस्करण चुनें (यदि आपको इसकी आवश्यकता है)

कार्यक्रम कमांड लाइन तर्कों का समर्थन करता है, इसलिए पैकेज के बाद, आप कर सकते हैं

c:\myApp argument1

और आप अपने नोड कोड में तर्क प्राप्त कर सकते हैं:

process.argv[1]

कभी-कभी आपके ऐप में फ़ाइल निर्भरताएं होती हैं, इसलिए BoxedApp में आप निर्भरता के रूप में कोई भी फ़ोल्डर और फ़ाइल जोड़ सकते हैं, उदाहरण के लिए, आप एक सेटिंग फ़ाइल सम्मिलित कर सकते हैं।

var mySettings=require('fs').readFileSync('./settings.jgon').toString()

और जानकारी:

बस एक नोट: आमतौर पर मैं ओपन-सोर्स / फ्री सॉफ्टवेयर के बारे में सिफारिश कर रहा हूं, लेकिन इस मामले में मुझे ऐसा कुछ नहीं मिला जो काम करता हो।


1
यह अच्छे कोड संरक्षण का भी समर्थन करता है क्योंकि डेटा रैम के अंदर सहेजे जाते हैं लेकिन हार्ड ड्राइव में नहीं
z0r1fan

3

मैंने पाया कि इनमें से कोई भी समाधान मेरी आवश्यकताओं को पूरा करता है, इसलिए नोड का अपना संस्करण बनाया जिसका नाम है नोड 2 एक्सई। यह https://github.com/areve/node2.exe से उपलब्ध है


3

मैं कुछ दिनों से इस विषय पर खोज कर रहा हूँ और यहाँ मुझे वही मिला है। विकल्प दो श्रेणियों में आते हैं:

यदि आप एक डेस्कटॉप ऐप बनाना चाहते हैं तो सबसे अच्छा विकल्प हैं:

1- NW.js : आपको सभी Node.js मॉड्यूल को DOM से सीधे कॉल करने देता है और सभी वेब तकनीकों के साथ एप्लिकेशन लिखने का एक नया तरीका सक्षम करता है।

2- इलेक्ट्रॉन : जावास्क्रिप्ट, एचटीएमएल और सीएसएस के साथ क्रॉस प्लेटफॉर्म डेस्कटॉप ऐप बनाएं

यहाँ उनके बीच एक अच्छी तुलना है: NW.js और इलेक्ट्रॉन तुलना । मुझे लगता है कि NW.js बेहतर है और यह JS फ़ाइलों को संकलित करने के लिए एक एप्लिकेशन भी प्रदान करता है। कुछ स्टैंडअलोन एक्जीक्यूटेबल और इंस्टॉलर बिल्डरों जैसे Enigma Virtual Box भी हैं । उन दोनों में क्रोम का एक एम्बेडेड संस्करण है जो सर्वर ऐप्स के लिए अनावश्यक है।

यदि आप किसी सर्वर ऐप को पैकेज करना चाहते हैं तो ये सबसे अच्छे विकल्प हैं:

नोड-कंपाइलर : Node.js के लिए डिज़ाइन किया गया अहेड-ऑफ-टाइम (AOT) कंपाइलर, जो बस काम करता है।

Nexe : अपने नोड से बाहर एक एकल निष्पादन योग्य बनाएँ। जेएस ऐप्स

इस श्रेणी में, मेरा मानना ​​है कि नोड-कंपाइलर बेहतर है जो गतिशील आवश्यकता और देशी नोड मॉड्यूल का समर्थन करता है। इसका उपयोग करना बहुत आसान है और आउटपुट 25 एमबी से शुरू होता है। आप नोड कंपाइलर पेज में अन्य समाधानों के साथ पूर्ण तुलना पढ़ सकते हैं। मैंने Nexe के बारे में ज्यादा नहीं पढ़ा, लेकिन अब के लिए, ऐसा लगता है कि Node Compiler ने J8 फाइल को V8 स्नैपशॉट फीचर का उपयोग करके बाइनरी फॉर्मेट में संकलित नहीं किया है, लेकिन यह संस्करण 2 के लिए योजनाबद्ध है। इसमें बिल्ट-इन इंस्टॉलर बिल्डर भी है।


2
Electronओपी के मुद्दे के लिए एक वैध सुझाव होना उचित नहीं है; यह एक पूरी तरह से अलग नोड ढांचा है।
प्रोगामर जूल

महान तुलना!
व्लाद


1

कमांड प्रॉम्प्ट से जीत पर शुरू करने के थक गया तो मैं इस पार भी भाग गया। थोड़ा सुधरा हुआ वचन। अधिक क्या josh3736 । यह कुछ सेटिंग्स को हथियाने के लिए XML फ़ाइल का उपयोग करता है। उदाहरण के लिए पथ के Node.exeसाथ ही डिफ़ॉल्ट ऐप में शुरू करने के लिए फ़ाइल। js. लोड करने के लिए पर्यावरण (उत्पादन, देव आदि) जिसे आपने अपने ऐप में निर्दिष्ट किया है। जेएस (या सर्वर.जेएस या जिसे आप कहते हैं)। अनिवार्य रूप से यह जोड़ता है NODE_ENV={0}जहाँ {0} app.js में आपके कॉन्फ़िगरेशन का नाम आपके लिए एक var के रूप में है। आप config.xml में "मोड" तत्व को संशोधित करके ऐसा करते हैं। आप इस परियोजना को यहां ले सकते हैं ==> जीथब । पोस्ट बिल्ड घटनाओं में नोट करें आप अपने config.xml और अपने निष्पादन योग्य पर ऑटो कॉपी करने के लिए कॉपी पथ को संशोधित कर सकते हैंNodejsनिर्देशिका, बस एक कदम बचाने के लिए। अन्यथा इन्हें संपादित करें या आपका निर्माण एक चेतावनी देगा।

var startInfo = new ProcessStartInfo();
        startInfo.FileName = nodepath;
        startInfo.Arguments = apppath;
        startInfo.UseShellExecute = false;
        startInfo.CreateNoWindow = false;
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;

        if(env.Length > 0)
            startInfo.EnvironmentVariables.Add("NODE_ENV", env);

        try
        {
            using (Process p = Process.Start(startInfo))
            {
                p.WaitForExit();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), "Start Error", MessageBoxButtons.OK);
        }


0

नोडबॉब नामक एक ओपनसोर्स बिल्ड टूल प्रोजेक्ट है । मुझे लगता है कि काम कर रहे मंच की खिड़कियां,

  1. बस क्लोन या डाउनलोड परियोजना
  2. ऐप फ़ोल्डर में सभी नोड-वेबकिट प्रोजेक्ट फ़ाइलों की प्रतिलिपि बनाएँ।
  3. build.bat स्क्रिप्ट चलाएँ।

आपको रिलीज़ फ़ोल्डर के अंदर निष्पादन योग्य फ़ाइल मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.