Pkg – Package your Node.js project into an executable
github.comReminds me a lot of nexe, a project a friend of mine is the maintainer of. I'd like to compare the differences between this, nexe and enclosejs, in terms of speed and final binary size.
Anecdotally, I built a small project (lambda fn) with just a single dependency (`request`) - the mac/alpine node6 build was 37MB.
37MB large or small in your world view?
I miss the days where the c guys mocked my statically linked 3mb delphi app for being large!
$%^& I just realised I have a lawn!?! How times change.
It's large, of course. But you have a full VM and a bunch of unminified javascript dependencies sitting in there. V8 isn't known for being small, either.
Compared to a proper systems language it's always going to look ridiculous. And it appears to be 3-4x larger than, say, py2exe. You can apparently get about a 30% reduction using `strip`, and there's likely other low-hanging fruit.
It's about 12MB compressed. It's not so terrible in today's world, and the simplicity at runtime is worthwhile IMO. I don't worry too much about my tools getting larger, so long as they solve problems and don't cause them.
I would be interested in that. Do any of these solutions include source protection or v8 snapshots? I think I saw that the overhead of using snapshots is negligible with a recent update of v8 (at least according to the author of nwjs).