You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					73 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					73 lines
				
				2.2 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# 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 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.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								$ 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](https://github.com/users/typicode/sponsorship)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								npm install please-upgrade-node
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Add `please-upgrade-node` at the top of your CLI
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								#!/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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```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 set custom `exitCode` and `message` function if needed
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								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](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)
							 |