-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Test of Jellyseerr v2.0.1 #6294
base: test-jellyseerr
Are you sure you want to change the base?
Test of Jellyseerr v2.0.1 #6294
Conversation
hey @hgy59, I was attempting to build a Node.js app using the instructions from the source repo but I think I'm missing something. While it does build from my branch, it does not include the dependencies required to run the package. So if I install Node v20 (from Synology) and then run this command:
I get errors like:
So even though it does build and I see this in the log as being passed as a dependency, I don't know how to include it in the package. Or perhaps this isn't the right approach when dealing with Node.js? |
I guess, the instructions work only when built on the target system. Did you include the node_modules folder in the package? probably you need to call but my try with pnpm deploy faild with: If this package really has > 1 GB of dependent modules it will be too large for SynoCommunity anyway... |
0bc7044
to
add33c6
Compare
@hgy59, I tried to include the node_modules manually but I still get errors when trying to run it. The manual inclusion may not be the best solution. I think there may be a path with this but will have to take some time to understand it: |
As an alternate approach I tried to do a manual build like what the instructions advises but using the same account and a local account (based on this guide) as follows:
So all in all, it appears possible to install but it takes forever so a pre-compiled version would be preferable. |
@th0ma7, the more I dive into this Node.js setup, the less confident I am that a single executable application is the best approach here. I’ll wrap up my research over the weekend, but I’m starting to think we should consider using npm more as a shared library manager, which is closer to its intended design. Including node_modules in a complex package like this can easily add up to several hundred megabytes, which ends up being larger than some .NET deployments! Normally, running npm install -g will throw permission errors, but this guide shows how to configure it to run globally without sudo. This brings up questions about management. So far, I’ve had to set up multiple environment variables which are tied to the package's internal service account. That won't be sustainable across multiple packages. With an updated SynoCommunity build for Node.js v20, there might be a way for the application to handle package management itself. While it may not be as modular as pip, it’s worth exploring. Another hurdle is that packages are only installed directly from the source code; I’m not sure if they can be triggered within a compiled package. Hopefully, there’s already a solution out there for this. Let me know if you’ve got any initial thoughts on it. |
I'm not used to npm nor node.js, perhaps @hgy59 has some more experience on this and can provide assistance. From a python wheel source code compilation standpoint, traditionally with pip it builds fine as long as they are pure python. Otherwise you require a full build environment which isn't available on our nas by default. However, we do now have a synocli-devel package which could in theory be used as it does provide an clang/llvm compiler, but that would only cover simpler cases. If that can help I do have preliminary code in my local branch to ease wheel building, although not yet ready for testing. Hopefully this will greatly simplify the wheel building experience but not sure this is what you are looking for for jellyfin? |
Thanks for the feedback, @th0ma7. Just to clarify, this is actually for Jellyseerr, not Jellyfin. While much of this code was borrowed from jellyfin-web — a Node.js-based app — the build process here differs significantly. From what I understand, jellyfin-web installs the front-end files, but it’s the Jellyfin .NET executable that actually runs the web server. |
As an experiment I installed the whole thing again in an Ubuntu VM and then I tried packaging using nexe. The process seemed successful as follows:
Sample:
Full log: It seems to build a nice executable file like this:
But when I try to run it I get this:
So some more work on the single executable route is needed. |
Description
Testing build of Node.js app
Fixes #
Checklist
all-supported
completed successfullyType of change