একটি নোড.জেএস অ্যাপ থেকে এক্সেপ ফাইলগুলি কীভাবে তৈরি করবেন?


123

আমার একটি নোড অ্যাপ্লিকেশন রয়েছে যা আমি লিখেছিলাম, যা আমি নীচে চালিতাম:

node.exe app.js inputArg

আমি নিজে থেকে এটি কে .exe এ প্যাকেজ করতে পারি এমন কোনও উপায় আছে? সুতরাং আমি কি ঠিক এরকম কিছু করতে পারি?

App.exe inputArg

ব্যাচ ফাইল ব্যবহার করে আমার এটি ফেক করার কিছু উপায় রয়েছে, তাই আমি এটি করতে পারি:

App.bat inputArg

তবে এটির প্রয়োজন যে folder ফোল্ডারে আমার সমস্ত নির্ভরতা এবং নোড রয়েছে, যা আদর্শ নয়।



2
এটি একটি সদৃশ পুলের অংশ হিসাবে উপস্থিত বলে মনে হচ্ছে: stackoverflow.com/questions/6145561/… , স্ট্যাকওভারফ্লো / প্রশ্ন / 7557364/… , স্ট্যাকওভারফ্লো / প্রশ্ন / 8173232 / make- exe- from-node- js- app , stackoverflow.com/questions/8794140/... , stackoverflow.com/questions/9724817/... , stackoverflow.com/questions/13388108/...
Mogsdad

সরঞ্জামের একটি ভাল তালিকা এখানে: stackoverflow.com/a/12486874/32679
GrGr

1
আমি মনে করি এখানে উত্তর যুক্ত করা যে কেউ ইতিমধ্যে তা সম্পন্ন হয়েছে কিনা তা বিবেচনা করা উচিত। এই প্রশ্নটি বিভিন্ন মানের / ক্রিয়াকলাপের বিভিন্ন ওপেন সোর্স পণ্যগুলির লিঙ্কগুলির স্তূপে পরিণত হচ্ছে।
লিয়াম

উত্তর:


35

বিনামূল্যে এবং বাণিজ্যিক উভয় বিকল্প আছে। আমি তাদের কোনটিই ব্যবহার করি নি তবে তত্ত্ব অনুসারে তাদের কাজ করা উচিত:

বেশিরভাগের জন্য আপনাকে ব্যাচ ফাইলটিকে প্রধান নির্বাহযোগ্য হিসাবে রাখতে হবে এবং তারপরে নোড.এক্সে এবং আপনার স্ক্রিপ্টগুলি বান্ডিল করবে।

আপনার স্ক্রিপ্টের উপর নির্ভর করে আপনার কাছে এটিকে জেএসডিবিতে পোর্ট করার বিকল্পও রয়েছে , যা এতে কেবল সংস্থান যুক্ত করে এক্সিকিউটেবলগুলি তৈরি করার একটি সহজ উপায় সমর্থন করে।

তৃতীয় পরিমাণের সমাধানটি হ'ল নোডের মতো কোথাও রাখা C:\utilsএবং এই ফোল্ডারটিকে আপনার PATHপরিবেশ পরিবর্তনশীলে যুক্ত করা। তারপরে আপনি সেই দিরে .bat ফাইলগুলি তৈরি করতে পারেন যা নোড + আপনার পছন্দসই স্ক্রিপ্টগুলি চালায় - আমি উইন্ডোজটিতে এইভাবে কফিসিপিটির coffeeকাজ পেয়েছি । এই সেটআপটি একটি ব্যাচ ফাইল, ভিবি স্ক্রিপ্ট বা ইনস্টলার দিয়ে স্বয়ংক্রিয় করা যেতে পারে।


এগুলি দেখতে দেখতে সুন্দর এবং এগুলি দেখতে আমি চাই তাদের মতো করতে পারে। আমি এটিকে একটি শট দেব এবং আপনার কাছে ফিরে যাব।
warশ্বর

2
আমি "উন্নত" ব্যাচ থেকে EXE রূপান্তরকারীটি চেষ্টা করেছি এবং এটি একটি কবজির মতো কাজ করেছে। আপনি নির্ভরযোগ্যতাগুলি এক্স ফাইলটিতে প্যাকেজ করতে পারেন। সাহায্যের জন্য ধন্যবাদ.
শ্বর

1
@ Warশ্বর, কিন্তু আপনি নোড_মডিউলগুলি ফোল্ডার বান্ডিল করতে পারবেন না, তাই আপনি এতে উন্নত কিছু করতে পারবেন না ...
ক্লিন্ট

আপনি যদি জিপ / আরআর নোড_মডিউলগুলি ব্যবহার করেন এবং অ্যাপ্লিকেশনটি চালিত হয় তখন কোনও অস্থায়ী ডিরেক্টরিতে বের হন? যদিও আপনি অনেকগুলি মডিউল পেয়েছেন তবে কিছুটা ধীর হতে পারে।
জারোদ মোসেন

55

আমি যে সমাধানটি ব্যবহার করেছি তা হ'ল রজার ওয়াংয়ের নোড-ওয়েবকিট

নোডেজ অ্যাপ্লিকেশনগুলিকে প্যাকেজ করার এবং এগুলি বিতরণ করার জন্য এটি দুর্দান্ত উপায়, এমনকি এটি আপনাকে একক সম্পাদনযোগ্য হিসাবে পুরো অ্যাপ্লিকেশনটিকে "বান্ডিল" করার বিকল্প দেয়। এটি উইন্ডোজ, ম্যাক এবং লিনাক্স সমর্থন করে।

নোড-ওয়েবকিট অ্যাপ্লিকেশন মোতায়েনের জন্য বিভিন্ন অপশনের কয়েকটি ডক্স এখানে দেওয়া হয়েছে , তবে সংক্ষেপে আপনি নিম্নলিখিতটি করছেন:

  1. রুটে একটি প্যাকেজ.জসন সহ আপনার সমস্ত ফাইল জিপ আপ করুন
  2. .Zip থেকে .nw এ এক্সটেনশনটি পরিবর্তন করুন
  3. copy / b nw.exe + app.nw app.exe

কেবল একটি যুক্ত নোট হিসাবে - আমি এটি ব্যবহার করে বেশ কয়েকটি প্রোডাকশন বাক্স / সিডি অ্যাপ্লিকেশন ইনস্টল করেছি এবং এটি দুর্দান্ত কাজ করেছে। উইন্ডোজ, ম্যাক, লিনাক্স এবং ওয়েবে একই অ্যাপটি চলে।

আপডেট: প্রকল্পের নামটি 'nw.js' এ পরিবর্তিত হয়েছে এবং সঠিকভাবে এখানে অবস্থিত: nw.js


1
শুধু চেষ্টা করে দেখলাম, দুর্দান্ত কাজ করেছেন! এবং এটি ইন্টেলের লোকেরা সমর্থিত।
টিমো হুভিনেন

এটি আজকের হিসাবে সঠিক এবং সর্বাধিক বর্তমান উত্তর হওয়া উচিত। এখানে নোড ওয়েবকিট চিটশিটটিও দেখুন : gist.github.com/LeCoupa/80eca2716a2b13c37cce জেএস কীভাবে সংকলন করতে হয় তার মতো অন্যান্য তীব্রভাবে দরকারী স্টাফ অন্তর্ভুক্ত করে (বা কমপক্ষে আপনি কী শব্দটি সম্পর্কে থাকতে চান তার উপর নির্ভর করে বাইট কোডে ডাউন ক্রাচ করুন "কম্পাইল")।
এরিক পুনরায়

আমি এই উত্তরটি পছন্দ করি, তবে এটি এখনও একটি স্বতন্ত্র উদাহরণ তৈরি করে না। গিথুবে ইন্টেল এবং এনডব্লিউ.জেএস অনুসারে আপনার একই ফোল্ডারে কমপক্ষে আরও দুটি ফাইল থাকা দরকার: এনডব্লিউ.পাক এবং আইসিডটি.ডিএল। আপনি কীভাবে একা একা তৈরি করতে পারেন?
জেফ বেকার

@ জেফব্যাকার যদি আপনি গিথুবটিতে ডক্সে কিছুটা নিচে তাকান তবে আপনি এটি দেখতে পাবেন: github.com/nwjs/nw.js/wiki/… আপনি যদি অতিরিক্ত ফাইল অন্তর্ভুক্ত না করতে চান তবে আপনি এটি করতে পারেন।
ক্লেটন গলিক 21

@ ক্লেটন, এনডব্লিউ.জেএসও ক্রোম ডট কম দ্বারা প্রকাশিত। বিকাশকারী।
ক্রোম

29

যে কেউ এই প্রশ্নের উপর হুমড়ি, সেখানে এখন দুই প্রকল্পের তৈরি খরচ আপনার নোড প্রকল্প, বাইরে pkg এবং Electron.atom.io , তারা সামান্য ভিন্ন:

  1. পিকেজি আপনার প্রকল্পটি দেশীয় কোডে সংকলন করবে, সেগুলিতে সম্পদ এবং একটি নোডেজ ইনস্টলেশনও অন্তর্ভুক্ত রয়েছে (.exe কার্যকর করতে সিস্টেমকে নোডেজ ইনস্টল করার প্রয়োজন হবে না)) আপনার উত্স কোড অন্তর্ভুক্ত করা হবে না। ফলস্বরূপ নির্বাহযোগ্য উইন্ডোজ কেবলমাত্র (.exe) e সমস্ত প্ল্যাটফর্ম এখন সমর্থিত। বাণিজ্যিক ব্যবসায়ের জন্য এখন এটির লাইসেন্স দরকার। সম্পূর্ণ ওপেন সোর্স।
  2. Electron.atom.io যখন এটি কম্প্যাক্ট হবে না এবং আপনার জন্য একটি .exe জেনারেট করেন, এটা যেহেতু তারা একটি উপায় অফার nodejs অ্যাপস বিতরণ করতে ব্যবহার করা যেতে পারে অ্যাপ্লিকেশনের বিতরণ । সুবিধাগুলি হ'ল ইলেক্ট্রন হ'ল মাল্টি-প্ল্যাটফর্ম (উইন্ডোজ, ম্যাক অক্স, লিনাক্স), কনসটি হ'ল আপনার উত্স কোডটি অন্তর্ভুক্ত করা হবে, এমনকি তারা কঠোরতার সাথে তারা আপনার অ্যাপটিকে আসার সংরক্ষণাগারের ভিতরে বিতরণের একটি উপায় সরবরাহ করে way এটি বুলেটপ্রুফ হবে না তবে এটি আপনার উত্সের চেয়ে সমতল better

2
দয়া করে আপডেট করুন: এনক্লিজজেএস এখন লিনাক্স এবং ওএস এক্স সমর্থন করে।
000000000000000000000000

সম্পাদিত মন্তব্য! @ 00000000000000000000000
সোকি

এনক্লোজেজেএস হবার উপায়। আমি এখনই চেষ্টা করে যাচ্ছি! আপনার উত্তর যুক্ত করার জন্য ধন্যবাদ! +1 :)
tftd

আমি এনক্লোজেজেএস ইনস্টল করতে পারি না। এটি বলেছে যে কোনও ত্রুটিযুক্ত ত্রুটি বার্তা ছাড়াই এরর কোড এলিফিসিইসিএল।
এলমিউ

2
এনক্লোজেসএস আর রক্ষণাবেক্ষণ করা হয় না। উত্তরাধিকারী zeit / pkg ( npmjs.com/package/pkg ) হিসাবে প্রদর্শিত হবে
লুਕਾਸ গনজে

21

ডিফল্টরূপে, উইন্ডোজ উইন্ডোজ স্ক্রিপ্ট হোস্ট , মাইক্রোসফ্টের একা থাকা জেএস রানটাইম ইঞ্জিনের .jsসাথে ফাইল যুক্ত করে associ আপনি যদি কমান্ড প্রম্পটে স্ক্রিপ্ট.জেএস টাইপ করেন (বা এক্সপ্লোরারে কোনও ফাইলকে ডাবল ক্লিক করুন ), স্ক্রিপ্টটি সম্পাদন করে ।.jswscript.exe

এটি কোনও বিশ্বব্যাপী সেটিংয়ের সাথে স্থানীয় সমস্যার সমাধান করতে পারে তবে আপনি তার পরিবর্তে ফাইলগুলি সংযুক্ত করতে পারেন , যাতে কোনও কমান্ড প্রম্পটে স্ক্রিপ্ট. js টাইপ করা বা স্ক্রিপ্টগুলিতে ডাবল-ক্লিক / আইটেমগুলি টেনে আনলে সেগুলি নোডের সাথে চালু করবে।.jsnode.exe

অবশ্যই, যদি me আমার মতো — আপনি যদি .jsকোনও সম্পাদকের সাথে ফাইলগুলি যুক্ত করেন যাতে ডাবল-ক্লিক করে আপনার প্রিয় পাঠ্য সম্পাদকটি খুলতে পারে, এই পরামর্শটি খুব বেশি কার্যকর করবে না। আপনি ফাইলগুলিতে "এক্সিকিউট উইথ নোড" এর ডান-ক্লিক মেনু এন্ট্রি যুক্ত করতে পারেন .js, যদিও এই বিকল্পটি আপনার কমান্ড-লাইনের প্রয়োজনীয়তাগুলি সমাধান করে না।


সবচেয়ে সহজ সমাধানটি সম্ভবত একটি ব্যাচ ফাইল ব্যবহার করা - আপনার স্ক্রিপ্টটি যে ফোল্ডারে থাকে সে ফোল্ডারে নোডের একটি অনুলিপি আপনার হাতে নেই Just

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

অন্য বিকল্পটি হ'ল এটি খুব সাধারণ সি # অ্যাপ্লিকেশন যা নোডটি .jsস্ক্রিপ্ট হিসাবে চালানোর জন্য নিজস্ব ফাইলের নামটি + ব্যবহার করে শুরু করবে এবং কোনও কমান্ড লাইনের যুক্তি দিয়ে যাবে pass

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 ...। নোট কনসোল উইন্ডোটির দায়িত্বে রেখে সি # বুটস্ট্র্যাপার অ্যাপটি তত্ক্ষণাত্ প্রস্থান করবে।

যেহেতু এটি সম্ভবত তুলনামূলকভাবে ব্যাপক আগ্রহের বিষয়, তাই আমি এগিয়ে গিয়ে গিটহাবের কাছে এটি উপলব্ধ করেছিলাম, অপরিচিতদের সাথে ভ্যানে উঠলে সংকলিত এক্সেস সহ আপনার জিনিস।


যেমন আপনি উল্লেখ করেছেন, এটি আমার সমস্যাটিকে আদর্শ উপায়ে সমাধান করে না। তবে আকর্ষণীয়
পাঠকদের

@ Warশ্বর, আমি একটি সহজ অ্যাপ্লিকেশন যুক্ত করেছি যা আপনার জন্য নোড চালু করবে। সম্পাদনাগুলি দেখুন।
josh3736

@ জোশ 73736 exe এখনও আপনার এক্সিটির কি একই ফোল্ডারে নোড.এক্সি থাকা দরকার?
রিকার্ডো টমাসি

@ রিকার্ডো টমাসি, না। এটি ধরে নিয়েছে যে নোডটি আপনার সিস্টেমের প্রোগ্রাম ফাইল ডিরেক্টরিতে ইনস্টল করা আছে (যেখানে ইনস্টলার এটি রাখে)।
josh3736

@ josh3736 এটি একটি আকর্ষণীয় সমাধান। আপনি যা করেছেন তা আমি পছন্দ করি, আমি আশা করি আমি আবার +1 করতে পারি :) :) তবে এটি এখনও আদর্শ নয়, কারণ এটিতে নোড.জেস ইনস্টল করা এবং স্ট্যান্ডার্ড পাথের ব্যবহারকারীর প্রয়োজন।
warশ্বর

20

আমার জানা সেরা সরঞ্জামটি হ'ল নোডজেএস সরঞ্জাম: জিট / পিকেজি

এটি ব্যবহার করা খুব সহজ (নেক্সির চেয়ে অনেক বেশি, কেবল উদাহরণ হিসাবে), আপনি কেবল বিশ্বব্যাপী ইনস্টল করতে পারেন: npm install -g pkg

ম্যাকোস, লিনাক্স এবং উইন্ডোজের এক্সিকিউটেবলগুলি তৈরি করতে:

pkg exampleApp.js

আমার কিছুটা জটিল কোড ছিল যা নোডজেএস সকেট সার্ভার ব্যবহার করেছিল, আমি বিভিন্ন অ্যাপ্লিকেশন চেষ্টা করেছি, তাদের কেউই এটিকে সঠিকভাবে তৈরি করে নি, zeit / pkg ব্যতীত ।


আমি একটি এক্স ফাইলের মধ্যে একটি অ্যাপিয়াম ইনস্টলেশন সংযোগ করার চেষ্টা করেছি এবং zeit / pkg সম্পূর্ণরূপে ব্যর্থ হয়েছিল। ডিস্কে 310MB থেকে 18MB এর একটি ছোট এক্স ফাইলের ফলস্বরূপ যা স্পষ্টতই কার্যকর হয়নি।
এলমিউ


12

যেহেতু এই প্রশ্নের উত্তর দেওয়া হয়েছে, অন্য একটি সমাধান চালু করা হয়েছে।

https://github.com/appjs/appjs

এই লেখার সময়, এটি এক্সিকিউটেবলের মধ্যে সংকলিত স্ট্রিপড ডাউন ক্রোমিয়াম প্যাকেজের মাধ্যমে নোড.জেএস অ্যাপস প্যাকেজিংয়ের শেষ সমাধান-

সম্পাদনা করুন: অ্যাপজেএস আর সক্রিয় নয়, তবে এটি ডেস্কেল নামে একটি কাঁটাচামচ প্রস্তাব করে।

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


1
ভাঙা লিঙ্ক বলে মনে হচ্ছে।
স্টারবিয়াম্রেনবোলাবস 9:53

1
এই প্রকল্পটি আর সক্রিয় নেই। ক্লেটন গুলিকের দ্বারা উল্লিখিত বিকল্পের জন্য নোড-ওয়েবকিট দেখুন।
কুকস

অ্যাপজগুলি নিজেই একটি সক্রিয় কাঁটাচামচ প্রস্তাব করে যার নাম ডেস্কেল github.com/sihorton/appjs-deskshell
বিটফিড

11

এখানে অনেক ভাল উত্তর রয়েছে তবে তারা জেএক্সকোরের মতো সোজা সোজা নয় ।

একবার আপনি উইন্ডোজে জেএক্সকোর ইনস্টল হয়ে গেলে, আপনাকে যা করতে হবে তা চালানো হবে:

jx package app.js "myAppName" -native

এটি একটি .exe ফাইল তৈরি করবে যা আপনি বিতরণ করতে পারেন এবং কোনও বাহ্যিক নির্ভরতা ছাড়াই কার্যকর করা যেতে পারে (আপনার সিস্টেমে জ্যাক্সকোর বা নোড.জেও প্রয়োজন হয় না)।

এখানে সেই কার্যকারিতা সম্পর্কিত ডকুমেন্টেশন রয়েছে: http://jxcore.com/packaging-code-protication/#cat-74

2018 সম্পাদনা করুন

প্রকল্পটি এখন মারা গেছে তবে এটি এখানে এখনও হোস্ট করা হয়েছে: https://github.com/jxcore/jxcore-re कृपया (ধন্যবাদ @ এলম্যু)


1
ধন্যবাদ বন্ধু. আমি কি উইন্ডোজ থেকে একটি লিনাক্স নির্বাহযোগ্য করতে পারি?
সসিভার্নন

1
যতদূর আমি জানি, না, আপনি পারবেন না। আমি মনে করি, এক্সিকিউটেবল করার জন্য জেএক্সকোর ওএস থেকে কিছু ফাইল গ্র্যাব করেছে, এবং এটি এই ফাইলগুলিকে প্যাকেজ করে না, তাই আপনি যদি একটি লিনাক্সকে এক্সিকিউটেবল করতে চান, আপনাকে লিনাক্সে এই কমান্ডটি চালাতে হবে।
নেপক্সেক্স

2
জেএক্সকোয়ার উন্নয়ন বন্ধ করেছে nubisa.com/nubisa-halting-active-de
વિકાસ

1
এখানে সমস্ত লিঙ্ক মারা গেছে। এটি কাজ করে: github.com/jxcore/jxcore-re দয়া করে
এলময়ে

7

চেষ্টা করুন disclose: https://github.com/pmq20/disclose

disclose নীচের বৈশিষ্ট্যগুলি সহ আপনার নোড.জেএস প্রকল্প এবং নোড.জেএস এর অনুবাদকের বাইরে মূলত একটি স্ব-উত্তোলনকারী এক্সেক তৈরি করে,

  1. জিইউআই নেই। খাঁটি সিএলআই
  2. কোনও রান-টাইম নির্ভরতা নেই
  3. উইন্ডোজ এবং ইউনিক্স উভয় সমর্থন করে
  4. প্রথমবারের জন্য ধীরে ধীরে চালিত হয় (ক্যাশে দিরের সাথে উত্তোলন করা), তারপরে চিরকালের জন্য দ্রুত

চেষ্টা করুন node-compiler: https://github.com/pmq20/node-compiler

আমি একটি নতুন প্রকল্প বলা করেছি node-compiler আপনার নোড.জেএস প্রকল্পটিকে একটি একক এক্সিকিউটেবলের মধ্যে সংকলন করার ।

এটা তুলনায় ভাল disclose এটি প্রথমবারের মতো ধীরে ধীরে চলবে না, কারণ আপনার উত্স কোডটি নোড.জেএস ইন্টারপ্রেটারের সাথে একসাথে সংকলিত হয়েছে, ঠিক যেমন নোড.জেএস লাইব্রেরির মতো।

অতিরিক্তভাবে, এটি রানটাইম সময়ে ফাইল সিস্টেমের পরিবর্তে মেমরিটিতে স্বচ্ছভাবে ফাইল এবং ডিরেক্টরি অনুরোধগুলি পুনর্নির্দেশ করে। সংকলিত পণ্যটি চালানোর জন্য যাতে কোনও উত্স কোডের প্রয়োজন হয় না।

কিভাবে এটা কাজ করে: https://speakerdeck.com/pmq20/node-dot-js-compiler-compiling-your-node-dot-js-application-into-a-single-executable

অনুরূপ প্রকল্পগুলির সাথে তুলনা করা,

  • পিকেজি ( https://github.com/zeit/pkg ): পিকেজি হ্যাক করেছে এফএস। * এপিআই-র প্যাকেজগুলি ইন-প্যাকেজ ফাইলগুলিতে অ্যাক্সেসের জন্য, যেখানে নোড.জেএস সংকলক এগুলি একা রেখে দেয় এবং পরিবর্তে লিবস্কুয়ের মাধ্যমে আরও গভীর স্তরে কাজ করে। পিকেজি ইন-প্যাকেজ ফাইলগুলি সঞ্চয় করতে JSON ব্যবহার করে যখন নোড.জেএস কম্পাইলার তার ডেটা স্ট্রাকচার হিসাবে আরও পরিশীলিত এবং বহুল ব্যবহৃত স্কোয়াশএফএস ব্যবহার করে।

  • এনক্লোজেজেএস ( http://enclosejs.com/ ): এনক্লোজেজেএস ইন-প্যাকেজ ফাইলগুলিতে অ্যাক্সেসকে কেবল পাঁচটি fs- তে সীমাবদ্ধ করে * এনক্লোজেজেস মালিকানাধীন লাইসেন্সযুক্ত এবং নোড.জেএস কমপ্লেয়ারটি এমআইটি-লাইসেন্সধারী থাকাকালীন ব্যবহারের সময় অর্থ গ্রহণ করে এবং ব্যবহারকারীরা উভয়ই এটি ব্যবহার করতে মুক্ত এবং এটি পরিবর্তন করতে মুক্ত free

  • Nexe ( https://github.com/nexe/nexe ): ব্রাউজারিফাই ব্যবহারের কারণে Nexe গতিশীল প্রয়োজন সমর্থন করে না, যদিও নোড.জেএস সংকলক প্রয়োজনীয়.আরসলভ সহ প্রয়োজনীয় সকল প্রকারের সমর্থন করে।

  • আসার ( https://github.com/electron/asar ): আসার ফাইলের তথ্য সংরক্ষণ করতে JSON ব্যবহার করে যখন নোড.জেএস সংকলক স্কোয়াশএফএস ব্যবহার করে। আসার কোড সংরক্ষণাগার এবং এক্সিকিউটেবলকে আলাদা রাখে যখন নোড.জেএস কম্পাইলার সমস্ত জাভাস্ক্রিপ্ট উত্স কোডটি নোড.জেএস ভার্চুয়াল মেশিনের সাথে একত্রে লিঙ্ক করে এবং চূড়ান্ত পণ্য হিসাবে একক এক্সিকিউটেবল উত্পন্ন করে।

  • অ্যাপিমেজ ( http://appimage.org/ ): অ্যাপ্লিকেশনটি কেবল একটি লিনাক্সকে স্ক্রিনএফএস সমর্থন করে এমন একটি কার্নেল দিয়ে সমর্থন করে, যখন নোড.জেএস কমপাইলার লিনাক্স, ম্যাকোস এবং উইন্ডোজের তিনটি প্ল্যাটফর্ম সমর্থন করে, ততক্ষণে কার্নেলের কোনও বিশেষ বৈশিষ্ট্য প্রয়োজনীয়তা ছাড়াই।


@ স্টাফেনলরেন্ট নোড-সংকলকটি পরীক্ষা করে দেখুন, এটি অবশ্যই এক্সের সাথে একটি কমান্ড-লাইন যুক্তি সমর্থন করে।
মিনকি প্যান

সর্বশেষ প্রতিশ্রুতি 30 আগস্ট, 2017 (2 বছর আগে)। অপ্রচলিত ?!
থাচ লকভেন

4

আমি আপনাকে এর জন্য বক্সেড অ্যাপের পরামর্শ দিচ্ছি। এটি একটি বাণিজ্যিক পণ্য যা খুব ভালভাবে কাজ করে। এটি যে কোনও নোডজেএস অ্যাপের জন্য কাজ করে। শেষ ব্যবহারকারী আপনার অ্যাপ্লিকেশনের জন্য কেবল একটি এক্সই ফাইল পাবেন। ইনস্টলেশন প্রয়োজন নেই।

উদাহরণস্বরূপ, ইলেকট্রনে, শেষ ব্যবহারকারীর আপনার অ্যাপ্লিকেশনটি ইনস্টল / সঙ্কুচিত করা দরকার এবং তিনি আপনার কোডের সমস্ত উত্স ফাইলগুলি দেখতে পাবেন।

BoxedApp এটি আপনার নোডজেএস অ্যাপ্লিকেশনটির প্রয়োজনীয় সমস্ত ফাইল এবং নির্ভরতা প্যাকেজিং করছে। এটি সংকোচনের সমর্থন করে এবং সংকলিত ফাইলটি উইন্ডোজ এক্সপি + এ কাজ করে

আপনি এটি ব্যবহার করার সময়, সংকলিত অ্যাপ্লিকেশনটিতে নোড.এক্স.ই.কে যোগ করার বিষয়ে নিশ্চিত হন। উইন্ডোজ এক্সপি সমর্থন করে এমন একটি নোড সংস্করণ চয়ন করুন (আপনার যদি এটির প্রয়োজন হয়)

প্রোগ্রামটি কমান্ড লাইন আর্গুমেন্টকে সমর্থন করে, সুতরাং প্যাকেজের পরে, আপনি এটি করতে পারেন

c:\myApp argument1

এবং আপনি আপনার নোড কোডে যুক্তিটি পেতে পারেন:

process.argv[1]

কখনও কখনও আপনার অ্যাপ্লিকেশনগুলিতে ফাইলগুলির নির্ভরতা থাকে, তাই বক্সেড অ্যাপে আপনি কোনও ফোল্ডার এবং ফাইলটিকে নির্ভরতা হিসাবে যুক্ত করতে পারেন, উদাহরণস্বরূপ, আপনি একটি সেটিংস ফাইল sertোকাতে পারেন।

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

অধিক তথ্য:

কেবল একটি নোট: সাধারণত আমি ওপেন-সোর্স / ফ্রি সফটওয়্যার সম্পর্কে সুপারিশ করছি তবে এই ক্ষেত্রে আমি কাজটি সেরকম কোনও কিছুই পাইনি।


1
এটি ভাল কোড সুরক্ষাও সমর্থন করে কারণ ডেটা র‌্যামের অভ্যন্তরে সংরক্ষিত হয়েছে তবে হার্ড ড্রাইভে নয়
z0r1fan

3

আমি এর কোনও সমাধান আমার প্রয়োজনীয়তাগুলি পূরণ করতে পেলাম, তাই নোডের নিজস্ব সংস্করণটি নোড 2 এক্সি বলে তৈরি করে যা এটি করে। এটি https://github.com/areve/node2exe থেকে উপলব্ধ


3

আমি এই বিষয়টি কয়েক দিন ধরে অন্বেষণ করছি এবং আমি যা পেয়েছি তা এখানে। বিকল্প দুটি বিভাগে পড়ে:

আপনি যদি কোনও ডেস্কটপ অ্যাপ তৈরি করতে চান তবে সেরা বিকল্পগুলি হ'ল:

1- এনডাব্লু.জেএস : আপনাকে সরাসরি ডিওএম থেকে সমস্ত নোড.জেএস মডিউলগুলিতে কল করতে দেয় এবং সমস্ত ওয়েব প্রযুক্তি সহ অ্যাপ্লিকেশন লেখার একটি নতুন পদ্ধতি সক্ষম করে।

2- ইলেক্ট্রন : জাভাস্ক্রিপ্ট, এইচটিএমএল এবং সিএসএস সহ ক্রস প্ল্যাটফর্ম ডেস্কটপ অ্যাপ্লিকেশনগুলি তৈরি করুন

এখানে তাদের মধ্যে একটি ভাল তুলনা হয়: NW.js এবং ইলেকট্রন তুলনা । আমি মনে করি NW.js ভাল এবং এটি জেএস ফাইলগুলি সংকলনের জন্য একটি অ্যাপ্লিকেশন সরবরাহ করে। এনিগমা ভার্চুয়াল বক্সের মতো কিছু স্ট্যান্ডেলোন এক্সিকিউটেবল এবং ইনস্টলার নির্মাতাও রয়েছে । তারা উভয় Chrome এর এম্বেড সংস্করণ ধারণ করে যা সার্ভার অ্যাপ্লিকেশনগুলির জন্য অপ্রয়োজনীয়।

আপনি যদি কোনও সার্ভার অ্যাপ্লিকেশন প্যাকেজ করতে চান তবে এগুলি সেরা বিকল্পসমূহ:

নোড-সংকলক : পূর্বে-সময় (এওটি) সংকলক নোড.জেএস এর জন্য ডিজাইন করা হয়েছে, এটি কেবল কাজ করে।

নেক্স : আপনার নোড.জেএস অ্যাপ্লিকেশনগুলির বাইরে একটি একক এক্সিকিউটেবল তৈরি করুন

এই বিভাগে, আমি বিশ্বাস করি নোড-সংকলক আরও ভাল যা গতিশীল প্রয়োজন এবং নেটিভ নোড মডিউলগুলিকে সমর্থন করে। এটি ব্যবহার করা খুব সহজ এবং আউটপুটটি 25 এমবি থেকে শুরু হয়। আপনি নোড সংকলক পৃষ্ঠাতে অন্যান্য সমাধানগুলির সাথে সম্পূর্ণ তুলনা পড়তে পারেন। আমি নেক্সি সম্পর্কে খুব বেশি পড়িনি, তবে আপাতত, মনে হচ্ছে নোড সংকলকটি ভি 8 স্ন্যাপশট বৈশিষ্ট্যটি ব্যবহার করে জেএস ফাইলটি বাইনারি ফর্ম্যাটে সংকলন করে না তবে এটি সংস্করণ ২-এর জন্য পরিকল্পনা করেছে এটি বিল্ট-ইন ইনস্টলার নির্মাতাও নিয়ে চলেছে।


2
Electronওপি'র ইস্যুটির জন্য একটি বৈধ পরামর্শ বলে ন্যায্যতা দেয় না; এটি সম্পূর্ণ ভিন্ন নোড কাঠামো।
প্রজিয়ামার

দুর্দান্ত তুলনা!
ভ্লাদ


1

কমান্ড প্রম্পট থেকে জয়ের শুরু করে ক্লান্ত হয়ে পড়েছিলাম তখন আমি এটির ওপরেও ছুটে এসেছি। কিছুটা উন্নত ভার কি josh3736 উপর । এটি কয়েকটি সেটিংস দখল করতে একটি এক্সএমএল ফাইল ব্যবহার করে। উদাহরণস্বরূপ Node.exe, ডিফল্ট অ্যাপ্লিকেশন.জেএস-তে শুরু করার সাথে সাথে ফাইলের পথে এছাড়াও লোড করার পরিবেশ (উত্পাদন, ডেভ ইত্যাদি) যা আপনি আপনার অ্যাপ.জেজে (বা সার্ভার.জেএস বা আপনি যা কিছু বলেছেন) নির্দিষ্ট করেছেন। মূলত এটি adds NODE_ENV={0}0 adds যুক্ত করে যেখানে অ্যাপ্লিকেশনগুলিতে আপনার কনফিগারেশনের নামটি আপনার জন্য একটি রূপ হিসাবে রয়েছে। আপনি কনফিগ.এক্সএমএলে "মোড" উপাদানটি পরিবর্তন করে এটি করেন। আপনি প্রকল্পটি এখানে ==> ডিরেক্টরিটি ধরতে পারেন , কেবলমাত্র একটি পদক্ষেপ সংরক্ষণ করতে। অন্যথায় এগুলি সম্পাদনা করুন বা আপনার বিল্ডটি একটি সতর্কতা ফেলে দেবে। গিথুব । পোস্ট বিল্ড ইভেন্টগুলিতে নোট আপনি নিজের কনফিগারেশন। এক্সএমএল থেকে স্বয়ংক্রিয় অনুলিপি করতে অনুলিপি করতে পারেন এবং আপনার সম্পাদনযোগ্য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);
        }

1

আমার জ্ঞান ছাড়াও অন্য অনেকগুলি বিকল্প থাকতে পারে, গিটহাব https://github.com/zeit/pkg- এ সক্রিয় বিকাশের একটি প্রকল্প রয়েছে । আপনি এটি সঙ্গে খেলতে পারেন। Https://github.com/nexe/nexe এ আরও একটি কিন্তু সক্রিয় বিকাশে নেই।


0

নোডবব নামে একটি ওপেনসোর্স বিল্ড টুল প্রকল্প রয়েছে । আমি ধরে নিই যে কার্যকারী প্ল্যাটফর্ম উইন্ডোজ,

  1. কেবল ক্লোন বা ডাউনলোড প্রকল্প
  2. আপনার সমস্ত নোড-ওয়েবকিট প্রকল্প ফাইলগুলি অ্যাপ্লিকেশন ফোল্ডারে অনুলিপি করুন।
  3. build.bat স্ক্রিপ্টটি চালান।

আপনি রিলিজ ফোল্ডারের ভিতরে এক্সিকিউটেবল ফাইলটি খুঁজে পাবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.