3.2.0 • Published 6 years ago

please-upgrade-node v3.2.0

Weekly downloads
5,091,695
License
MIT
Repository
github
Last release
6 years ago

Please upgrade Node npm.io Build Status npm

:information_desk_person: 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) // <- Must run BEFORE requiring any other modules

// ...

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

archetype-libraryreact-native-bluetooth2swagger-api-trackerswagger-api-tracker1swagger-api-tracker2swagger-api-tracker3swagger-api-tracker4swagger-api-tracker5swagger-api-tracker6swagger-api-tracker7@closedcollective/husky@jas99/huskytemp-eleventy-tempairscanairscan-examplebb-chatreact-native-esc-pos-sahaab@borisovart/atol-kkt-moduledeneme323112@ntt_app/react-native-custom-notification@btup/bootupanother-json-server@jttechnic/interpreter@you54f/serverless-offline@freightjs/freightjson-server-custom-router@newhorizon-tech/dd-npm-package-templateunblock-block-save-variables@infinitebrahmanuniverse/nolb-ple@soulobby/mariadb@everything-registry/sub-chunk-2446tailwind-vector-effectwebchexl-json-serversticker-dlsvavatarswagger-wave-server-generatorvue-compmentvision-camera-plugin-scan-facesv9u-smb2-singstorvcloudcam-playkit-js-hlsvue-dev-clone@djaty/djaty-cli@dsludwig/depcheck@codedungeon/gunner@codedungeon/laravel-versions-cli@codedungeon/code-assistant@cryptocode99/token-lists@commonshost/cli@cubesoft/depcheck@corelmax/react-native-my2c2p-sdk@connorads/serverless-offline@d0whc3r/json-server@dony435/json-server@rbc-public/react-selectable-fast@rsf/json-serverjson-server-forkjson-server-masterjson-server-plusjson-server-s3json-server-sinnbojson-server-testejson-server-cnjson-server-relationshipjson-server-visopjson-server-with-batch-insertionjnf-accesscontrol-rnttlisomor-ng-nestisomor-react-appisomor-serverisomor-transpilerisomor-vue-appjson2apijump-json-serverlbmesh-clilaoitdev-core-pluginsdfeuk-frontenddfeuk-frontend-manualsugar18stnenopmoc-iusuppress-eslint-errorstypedoc-plugin-toc-group-modtypeorm-polymorphic-clonetint-serverless-offlinetvttrttwine-libtwine-library@apardellass/react-native-audio-stream@arielapaula/components@arielapaula/test@akryum/hotel@beforeyoubid/serverless-offline@bitbeat/core@cardstack/prettier@chotot/husky@chuyik/husky@charliec3/gh-actions-example@charliec3/gh-actions-example-docs@charliec3/gh-actions-example-docs2
3.2.0

6 years ago

3.1.1

7 years ago

3.1.0

7 years ago

3.0.2

7 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.0.0

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago