os-js / OS.js

OS.js - JavaScript Web Desktop Platform
https://www.os-js.org/
Other
6.89k stars 822 forks source link

Webpack issues on Node 17 #785

Open Devesh21700Kumar opened 2 years ago

Devesh21700Kumar commented 2 years ago

A friend tried deploying the web app on Heroku and it showed this error (pasted in the bin link below) https://pastebin.com/aadQpxS9

The fix for this was adding export NODE_OPTIONS=--openssl-legacy-provider; to build script in package.json

If a check for nodejs version can be implemented using a bash script or the above could directly be put in package.json then deployment could be made easier for NodeJs versions >=17

andersevenrud commented 2 years ago

I've had some discussions on this here: https://community.os-js.org/t/how-to-get-full-os-js/569

I'll see if there isn't a nice way to solve this without having to modify anything.

andersevenrud commented 2 years ago

Just updating this because this came up on Gitter.

Node 17 is currently not supported because of changes with SSL of which older webpack (4) has no support for.

npm commands fails with the error error:0308010C:digital envelope routines::unsupported

Doing NODE_OPTIONS=--openssl-legacy-provider npm <command> should make it work, but ideally webpack should be upgraded.

This requires that the dev meta package (https://github.com/os-js/osjs-dev-meta) has it's dependencies updated and released as a new major version. This repo would then have to update this meta package.


Downgrading/using node 16 (which is still LTS) is recommended.

You can use https://github.com/nvm-sh/nvm to make this process simple.

ajmeese7 commented 2 years ago

It is also possible to modify your fork of OS.js to transition everything entirely over to Webpack 5, that's what I have done with my project. It takes some time and a lot of refactoring but it is possible and it works pretty well.

andersevenrud commented 2 years ago

@ajmeese7 Feel free to submit PRs on that if possible. I would love to get transitioned, but simply don't have the time myself.

ajmeese7 commented 2 years ago

@andersevenrud I can try, the biggest obstacle is with the @osjs/dev-meta repository. I would have to make a different branch on each repository and open them all as pull requests at the same time, but if that's alright with you then I can work on that when I have time

andersevenrud commented 2 years ago

@ajmeese7

the biggest obstacle is with the @osjs/dev-meta repository.

Yeah, figures :)

would have to make a different branch on each repository and open them all as pull requests at the same time, but if that's alright with you then I can work on that when I have time

Works for me. But you don't have to do it all at once. A working dev-meta with v5 and the distro/base-repo + osjs-client would suffice just to get the ball rolling. Maybe we can even automate the migration process here on everything else afterwards.

ajmeese7 commented 2 years ago

Sounds like a plan, I'll get started on it as soon as I can

andersevenrud commented 2 years ago

I've split this out to an issue in the appropriate repository

https://github.com/os-js/osjs-dev-meta/issues/25

paxperscientiam commented 1 year ago

FYI to others, the issue persists with node v18 too.