please-upgrade-node

by typicode

:information_desk_person: Show a message to your users to upgrade Node instead of a stacktrace

214 Stars 24 Forks Last release: about 1 year ago (v3.2.0) MIT License 57 Commits 8 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Please upgrade Node Build Status npm

:informationdeskperson: show a message to your users to upgrade Node instead of a stacktrace

It's common for new Node users to miss or not understand engines warning when installing a CLI. This package displays a beginner-friendly message if their Node version is below the one expected.

$ node -v
0.12

$ modern-cli modern-cli requires at least version 6 of Node, please upgrade

Support

If you like this project, you can support me on GitHub Sponsors

Usage

npm install please-upgrade-node

Add

please-upgrade-node
at the top of your CLI
#!/usr/bin/env node
const pkg = require('./package.json')
require('please-upgrade-node')(pkg) // 

Set in your

package.json
the required Node version
{
  "engines": {
    "node": ">=6"
  }
}

Important:

>=
is the only operator supported by
please-upgrade-node
(e.g.
>=6
,
>=6.0
,
>=6.0.0
).

Options

You can set custom

exitCode
and
message
function if needed
pleaseUpgradeNode(pkg, {
  exitCode: 0, // Default: 1
  message: function(requiredVersion) {
    return 'Oops this program require Node ' +  requiredVersion
  }
})

Important: to keep

message
function compatible with older versions of Node, avoid using ES6 features like
=>
or string interpolation.

See also

  • pkg-ok - :ok_hand: Prevents publishing a module with bad paths
  • husky - :dog: Git hooks made easy
  • update-notifier - Update notifications for your CLI app

Thanks to zeit/serve for the error message inspiration.

License

MIT - Typicode :cactus: - Patreon

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.