-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transition to Single Execution Applications - Extension of PR #13 #14
Conversation
I'm currently testing with a wider set of my personal applications to see the differences and iron out any issues. Will let you know how it goes. Haven't made many changes to your original work either, just some style and docs. I may add a short disclaimer to the README given that this package will only work for new versions of Node now. |
Alright, having a look there's a few things that need work. The first is that given an entry point, the current build system will only include that entry file. For ease of use, I think that this bundling should be included and I have previously used ncc for this purpose (another Vercel solution, hopefully this one isn't deprecated any time soon) which supports both TS & JS. However, this yields a warning (which from my testing can be safely ignored for the moment), which I'm unsure as to how to suppress.
The second issue is that now the compiled code is viewable as plain text, simply by opening the compiled executable in notepad. Source code obfuscation is a feature of this module and it's something I'd like to keep. This is explored in an issue under the single executable application repo, with the solution offered being to use |
In this current stage I've implemented bundling - yet to play around/research what would be the best target version for the lowest supported version of Node for this module (I believe technically SEA is supported prior to Node 21, but I'm not sure to what extent). The minification doesn't do a bad job and obfuscating code, but strings are still plainly visible, bytecode or some other less reversible process would be ideal. The require() warning still is present. |
I've suppressed the warnings (for some reason they are emitted as errors which made them incredibly difficult to track down...). The source code is still only minified, not properly obfuscated. |
Extension of #13