please-upgrade-node
Advanced tools
Comparing version 2.0.0 to 3.0.0
@@ -1,4 +0,2 @@ | ||
module.exports = function (pkgDir) { | ||
var dir = pkgDir || '.' | ||
var pkg = require(dir + "/package.json"); | ||
module.exports = function (pkg) { | ||
var requiredVersion = pkg.engines.node.replace(">=", ""); | ||
@@ -5,0 +3,0 @@ var currentVersion = process.version.replace("v", ""); |
{ | ||
"name": "please-upgrade-node", | ||
"version": "2.0.0", | ||
"version": "3.0.0", | ||
"description": "Displays a beginner-friendly message telling your user to upgrade their version of Node", | ||
@@ -9,3 +9,2 @@ "main": "index.js", | ||
"prepublishOnly": "pkg-ok", | ||
"precommit": "npm test", | ||
"fix": "prettier --write *.js" | ||
@@ -12,0 +11,0 @@ }, |
# Please upgrade Node [![Build Status](https://travis-ci.org/typicode/please-upgrade-node.svg?branch=master)](https://travis-ci.org/typicode/please-upgrade-node) [![npm](https://img.shields.io/npm/v/please-upgrade-node.svg)](https://www.npmjs.com/package/please-upgrade-node) | ||
> __Be friendly, be cool__ :sunglasses: show a message to your users to upgrade Node instead of a stacktrace | ||
> :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 and it's just a [__few lines__](index.js) of JS code. | ||
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. | ||
Example with [hotel](https://github.com/typicode/hotel) CLI: | ||
``` | ||
```sh | ||
$ node -v | ||
0.12 | ||
$ hotel | ||
@@ -16,25 +17,17 @@ hotel requires at least version 4 of Node, please upgrade | ||
## Usage | ||
## Install | ||
Install: | ||
```sh | ||
npm install please-upgrade-node | ||
yarn add please-upgrade-node | ||
``` | ||
Require `please-upgrade-node` before anything else: | ||
```js | ||
// ./bin.js | ||
// by default, will load ./package.json | ||
require('please-upgrade-node')() | ||
// The rest of your code... | ||
// bin.js | ||
const pkg = require('./package.json') | ||
require('please-upgrade-node')(pkg) | ||
// please-upgrade-node MUST run before other requires | ||
``` | ||
In your `package.json`, define the required Node version: | ||
```json | ||
```js | ||
// package.json | ||
{ | ||
@@ -47,43 +40,4 @@ "name": "super-cli", | ||
Please note that `>=` is the only operator supported by `please-upgrade-node` (e.g. `>=4`, `>=4.0`, `>=4.0.0`). Now if your users install your `super-cli` project with an older Node version, they'll see: | ||
`>=` is the only operator supported by `please-upgrade-node` (e.g. `>=4`, `>=4.0`, `>=4.0.0`). | ||
```sh | ||
$ npm install -g super-cli | ||
# [...] | ||
npm WARN engine super-cli@1.0.0: : wanted: {"node":">=6"} (current: {"node":"4.8.3","npm":"2.15.11"}) | ||
# [...] | ||
``` | ||
```sh | ||
$ super-cli | ||
super-cli requires at least version 6 of Node, please upgrade | ||
``` | ||
## API | ||
`pleaseUpgradeNode([pkgDir = '.'])` | ||
You can pass a `pkgDir` if your `package.json` is not at the same level: | ||
```js | ||
// ./package.json | ||
require('please-upgrade-node')() | ||
// ../../package.json | ||
require('please-upgrade-node')('../..') | ||
``` | ||
## Caveat | ||
Make sure when requiring `please-upgrade-node` to not use syntax that is only supported in recent versions of Node. | ||
For example, if you use `const` instead of `var`, `please-upgrade-node` won't work with Node `0.12`: | ||
```js | ||
const pleaseUpgradeNode = require('please-upgrade-node') // ← Will fail and exit here with Node 0.12, | ||
pleaseUpgradeNode() // Message won't be displayed | ||
``` | ||
To avoid any issues, the recommended syntax is `require('please-upgrade-node')()`. | ||
## See also | ||
@@ -94,3 +48,3 @@ | ||
Thanks to [zeit/serve](https://github.com/zeit/serve) for inspiring the error message. | ||
Thanks to [zeit/serve](https://github.com/zeit/serve) for the error message inspiration. | ||
@@ -97,0 +51,0 @@ ## License |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
0
3765
12
51