66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Please upgrade Node [](https://www.npmjs.org/package/please-upgrade-node) [](https://travis-ci.org/typicode/please-upgrade-node) [](https://www.npmjs.com/package/please-upgrade-node)
 | |
| 
 | |
| > :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 the `npm` engines warning when installing a CLI. This package displays a beginner-friendly message if their Node version is below the one expected.
 | |
| 
 | |
| ```sh
 | |
| $ node -v
 | |
| 0.12
 | |
| 
 | |
| $ modern-cli
 | |
| modern-cli requires at least version 6 of Node, please upgrade
 | |
| ```
 | |
| 
 | |
| ## Install
 | |
| 
 | |
| ```sh
 | |
| npm install please-upgrade-node
 | |
| ```
 | |
| 
 | |
| ```js
 | |
| #!/usr/bin/env node
 | |
| const pkg = require('./package.json')
 | |
| require('please-upgrade-node')(pkg)
 | |
| // Must run BEFORE requiring other modules
 | |
| ```
 | |
| 
 | |
| ```js
 | |
| // package.json
 | |
| {
 | |
|   "bin": "./bin.js",
 | |
|   "engines": {
 | |
|     "node": ">=6"
 | |
|   }
 | |
| }
 | |
| ```
 | |
| 
 | |
| __Important__: `>=` is the only operator supported by `please-upgrade-node` (e.g. `>=6`, `>=6.0`, `>=6.0.0`).
 | |
| 
 | |
| ## Options
 | |
| 
 | |
| You can also pass custom `exitCode` (default: `1`) or `message` function
 | |
| 
 | |
| ```js
 | |
| pleaseUpgradeNode(pkg, {
 | |
|   exitCode: 0,
 | |
|   message: function(requiredVersion) {
 | |
|     return 'Oops, this program requires 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](https://github.com/typicode/pkg-ok) - :ok_hand: Prevents publishing a module with bad paths
 | |
| * [husky](https://github.com/typicode/husky) - :dog: Git hooks made easy
 | |
| * [update-notifier](https://github.com/yeoman/update-notifier) - Update notifications for your CLI app 
 | |
| 
 | |
| Thanks to [zeit/serve](https://github.com/zeit/serve) for the error message inspiration.
 | |
| 
 | |
| ## License
 | |
| 
 | |
| MIT - [Typicode :cactus:](https://github.com/typicode) - [Patreon](https://patreon.com/typicode)
 |