Comments (4)
Hi @wolkyura -
TL;DR: This is intentional and not a mistake, however a newer version of Node is very likely to work just fine. I have tested Node 22 and the commands I tested worked without issue.
For full transparency, we are working to remedy several issues around the node version used for the CLI and the @oclif/plugin-plugins version we are using.
- There is currently no way to verify that an installed plugin will work with the node version or the CLI version used by the host. Ref this issue. This means that oclif allows potentially incompatible plugins to be installed without warning the user.
- There is currently no officially supported way to update Node independently of the original install for the CLI. That is, if you install the CLI and it uses Node 16.20.1 and later on this version is found to contain a vulnerability, you must wait for a release from the Heroku team and reinstall the CLI using the installer to get the patched Node version. There are workarounds to this such as using
npm i -g heroku@latest
but this is not officially supported. - @oclif/plugin-plugins uses Yarn to install plugins. Yarn installs all
devDependencies
that are found in thepackage.json
and fails the install if one of the devDependencies has an engine mismatch. Of course this is bad since a local dev environment can sometimes require Node 22 while the production build targets Node > 16. Plus, there is the added overhead of installing packages that are never used. This has been fixed and we'll be adopting the new version as part of our updates.
These are the items we're aware of and are discussing solutions for. Part of the discussion is maintaining Node LTS compatibility so our CLI will never require a version of Node that is no longer maintained.
A Note about item 3 in the above list: The workaround I am recommending for plugin authors is to omit devDependencies
in the package.json and either remove yarn.lock
altogether or rebuild it from the package.json that excludes devDependencies
before publishing to NPM. This is the 100% reliable way to prevent issues until we can adopt the fix by the oclif team.
from heroku-cli.
Hi @Enase -
The Heroku team has plans to update to Node LTS sometime later this year. If you need to run the cli using a newer version of Node, most commands prepackaged with the default install should work. Of course, you would also have to use npm i -g heroku
which it looks like you are already doing. :)
from heroku-cli.
Thanks @justinwilaby for the detailed reply! Using npm
to install heroku
works just fine.
from heroku-cli.
Hey @justinwilaby
The v8.8.0
release introduced this change 7ba13da which forces node16, do you think it was done by mistake and it should be >=16.20.0
and not ~16.20.0
?
from heroku-cli.
Related Issues (20)
- plugin-mtls is not installing using heroku cli HOT 4
- Heroku login -- unable to verify the first certificate HOT 12
- Release Key Expired? HOT 13
- Broken autocomplete when installing CLI with homebrew on Linux HOT 4
- Syntax coloration is disabled HOT 7
- `heroku commands --json` yields MODULE_NOT_FOUND HOT 1
- i have an issue with heroku login HOT 1
- ERR_UNESCAPED_CHARACTERS: Request path contains unescaped characters HOT 1
- Windows - Add `DisplayVersion` key to registry HOT 6
- Windows - Add DisplayVersion key to registry HOT 1
- Breaking Change for `heroku container:push --recursive` on 9.0.0 HOT 1
- heroku container:release no longer allows migration from heroku-xx stacks since 9.0.0 HOT 2
- CLI v9: breaking regression for pg:backups:schedule when passing in timezone HOT 2
- `heroku run` command arguments are incorrectly sorted, breaking command functionality HOT 11
- heroku/cli docker image not found HOT 1
- Broken build while using older version of docker HOT 1
- <!--
- Heroku/CLI
- Cli
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from heroku-cli.