-
Notifications
You must be signed in to change notification settings - Fork 236
Support later versions of Node (or make version configurable) #560
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
Comments
Hey @Blittle- thanks for reporting this. Node 16 support is on our roadmap for Q1 and WIP on our side. Supporting multiple Node versions is a big change in webcontainer so this will likely take a few months to land, but after that it will be much easier for us to add support for subsequent versions of Node (and other langs/runtimes). I'm curious what specific features of Node 16 that Hydrogen is relying on that isn't present in 14? Depending on what those are there might be something we can do from our side as a temp solution, or perhaps some sort of polyfill approach in Hydrogen core that would allow Node 14 users to also run Hydrogen v1? |
Hi @EricSimons thank you for the response! It's great to hear that Node 16 is WIP. The specific features we rely upon are the |
Just chiming in to add that I'm excited for this feature and add a reason it will be super useful to me! Currently I primarily use stackblitz as a way to share bug reproductions (it's awesome for this, thank you!) and I'm having a problem I'm relatively sure is related node@16 that I cannot reproduce / share this way because stackblitz only currently only supports node@14 |
For me it's webcrypto... completely missing in Node 14
https://stackblitz.com/edit/koa-starter-wychx9?file=src%2Findex.ts |
I just found out that we are on node |
I'm against taking the burden of supporting multiple versions of node. If someone needs to archive everything, containers are better for that. It would be nice to have the option of using node 17, but what we'll always desperately need is the current LTS, which right now is 16. Very few projects will break going from 14 to 16. When they do, the fix is usually trivial. Right now there is no production pipeline that will break if we hard switch everyone to Node 16. So lets switch everyone to LTS and forget about 14, it's the easiest, cheapest and best route long term and short term. |
The live servers don't have the latest LTS. Stackblitz and other platforms are amazing for providing error reproductions - but whenever these error reproductions are connected to specific Node.js versions, you're out of look. It would be a big boost to our usage of Stackblitz if we could choose the Node version we want, including minors and pre-releases. |
Re-visiting this issue because Node 18 has landed and includes support for some major web primitives that are now built-in to Node itself as globals. Things like Node 18 also includes Web Streams ( Upgrading to Node 18 and requiring it as the minimum version to use Hydrogen means we would no longer have to use feature detection or polyfill anything. This would improve performance and reduce overall bundle and install size for all Hydrogen apps (as well as many other Node apps too that no longer have to use things like Do you have any ETA on when we can specify a specific Node version in our own container, or when you can upgrade to Node 18 (the next LTS version)? |
Hey there 👋 We are planning to upgrade to Node 18 in the next quarter or two before 16 goes out of maintenance. We keep you posted here. |
@d3lm |
Yea, once upgraded to 18 those should work 👍 |
Leaving a note that Astro 3.0 (releasing before node16 EOL) will only support node18 and above. So it might temporarily not work in stackblitz as we use some node18 APIs, like |
With the Qwik Framework and server side functions to work, we would also need node 18 |
Remix v2 also upgraded to a minimum of Node 18, so we'd love to see this become configurable (or raised to active LTS) |
We are planning to release an upgrade to Node.js 18 in the coming 1 to 2 weeks. We will definitely keep everyone posted. The plan is to drop support for Node.js 16, as it is end of life. Starting from Node.js 20, we want users to be able to configure/switch a specific LTS version. More info will follow once we are there. We also want to be more transparant to the future on the release cadance of Node.js upgrades. We want to do better in communicating this so it's clear for everyone and there are no surprises. |
T3-Turbo requires Node.20.10 so unable to get it working on Stackblitz |
Didn't look like this happened? I opened an issue here: stackblitz/core#2926 webpack is totally broken (if using the thread-loader, due to the libUV issue nodejs/node#49911) |
We did do the upgrade from 16 to 18. This answer was not about upgrading to a different 18 minor.
I already thought this issue looked familiar :). Apparently you ran into (and reported) it a couple months ago #1256. I also answered why |
2 Weaks ago, a few of my projects started breaking ... more started following. Due to dependency updates and node being to old. |
Any updates on this from the Stackblitz team? |
Hi, StackBlitz and @SamVerschueren. Is Node 20 still a priority? Bolt.new is being limited with some frameworks because of the minimum versions of Node needed. Thank you! |
Please prioritize support for Node LTS version selection -- and please also be sure to bring this capability to Stackblitz Enterprise ASAP. I've been championing Stackblitz EE at my workplace, and it'd be a real shame if we finally make it happen only to get hung up on being stuck w/ outdated Node. Hopefully the influx of cash from Bolt ($4m ARR in its first month??) will help Stackblitz fund this kind of request -- which IMHO is fundamental. Thanks! |
Impossible to run latest versions of Nuxt in Bolt.diy because of Node version, do we have an ETA on this? |
not having latest node version is a real bottleneck |
Hey! In my case, even Node 18 doesn't work ❯ npm install && npm run dev
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@nuxt/kit@3.15.1',
npm WARN EBADENGINE required: { node: '>=18.20.5' },
npm WARN EBADENGINE current: { node: 'v18.20.3', npm: '10.2.3' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@nuxt/telemetry@2.6.4',
npm WARN EBADENGINE required: { node: '>=18.20.5' },
npm WARN EBADENGINE current: { node: 'v18.20.3', npm: '10.2.3' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@nuxt/vite-builder@3.15.1',
npm WARN EBADENGINE required: { node: '^18.20.5 || ^20.9.0 || >=22.0.0' },
npm WARN EBADENGINE current: { node: 'v18.20.3', npm: '10.2.3' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'nuxt@3.15.1',
npm WARN EBADENGINE required: { node: '^18.20.5 || ^20.9.0 || >=22.0.0' },
npm WARN EBADENGINE current: { node: 'v18.20.3', npm: '10.2.3' }
npm WARN EBADENGINE } |
Is node 18 bundled in the browsers, and not something stackblitz has control over? |
New react-router v7 requires Node 20. I can't use stackblitz to create repros. |
I have been subscribed to this thread and this request keeps coming back in waves. Something needs to be done :/ |
@blittle it's been a few years since you created this issue, what did you end up doing? |
Node 18 will leave maintenance in April: This ticket's history has me concerned about Stackblitz's viability for serious projects. :( |
Hi all! We've been inundated with demand on our new Bolt.new product recently which caused a delay on this, but work resumed the past weeks and we expect to have Node 20 online well before April. Once that's landed we're immediately beginning work on Node 22, and from here on out expect to have a more seamless cadence of having multiple versions available in line with LTS. PS- we just raised more funding and are expanding our WebContainer team, so please apply if you'd like to work on this with us!! 🙌 |
Why doesn't support 22 LTS version yet? |
@iamchathu see the latest update right above your question:
|
Hello everyone 👋 . I have an update to share regarding Node 20. Although it's not YET the default when you start a new project, it is already possible to use it 🎉 . We are looking for feedback and people who test this out so when we make it the default (hopefully very soon), most users won't even notice a difference. You can either do 1 of these 3 option (whatever flavour you like more). engines.nodeAdding a {
"name": "my-project",
"version": "1.0.0",
"engines": {
"node": "20.19.0"
}
} .nvmrcIf you're more a fan of
.tool-versionsOr if you're a
|
Awesome @SamVerschueren! What happens if the defined Node version is 22? |
If you define 22 you currently get served with the default version (which is still 18 and will soon become 20). I thought about serving v20 in that case but didn't do it in the end. |
Coming across this as I'm trying to use a node package which requires v20 - It's not clear to me where or which package.json should specify the node version. Is it the package.json that is mounted as part of the files? Thank you in advance for any guidance. |
It's still not clear how to use Node.js versions 20 and above in a web container. Could someone share more details about it? Thanks! |
If you are using the StackBlitz editor, you just have to add it to the If you are using WebContainer API, you have to wait a little bit longer until we make it the default. We don't provide an option (yet) to specify which version you want. |
With the team we decided to expose an option for WebContainer API. Something along the lines of I also updated my post with the information so that it's more clear that you have to add/change the files in the root of the project. |
As of today, Node.js 20 is the default everywhere, including WebContainers API. |
Hi team! What would it take to support current lts (version 22), or future one - 24? |
Is your feature request related to a problem? Please describe:
At Shopify we heavily use https://hydrogen.new for sharing and promoting the Hydrogen Framework. We recently made changes that require Node v16.5.0 or greater. If there's no way to configure stackblitz to use Node 16, we'll probably revert those changes until this issue is resolved.
Describe the solution you'd like:
We'd like a way to configure which version of NodeJS the stackblitz container runs with.
Describe alternatives you've considered:
Our alternative is to 1) not use stackblitz or 2) revert our Node 16 specific features, though this will have to be tempoarary because the features are required for our 1.0 launch.
Additional context:
Related issue: stackblitz/core#1622
The text was updated successfully, but these errors were encountered: