Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mysticatea/if-node-version
Run a shell command if it's on the node of specified versions.
https://github.com/mysticatea/if-node-version
cli cli-command node nodejs npm npm-module npm-package npm-scripts version version-check
Last synced: 5 days ago
JSON representation
Run a shell command if it's on the node of specified versions.
- Host: GitHub
- URL: https://github.com/mysticatea/if-node-version
- Owner: mysticatea
- License: mit
- Created: 2016-07-02T12:49:06.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-07-21T12:34:58.000Z (over 4 years ago)
- Last Synced: 2024-10-13T22:33:08.542Z (24 days ago)
- Topics: cli, cli-command, node, nodejs, npm, npm-module, npm-package, npm-scripts, version, version-check
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 14
- Watchers: 3
- Forks: 15
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# if-node-version
[![npm version](https://img.shields.io/npm/v/if-node-version.svg)](https://www.npmjs.com/package/if-node-version)
[![Downloads/month](https://img.shields.io/npm/dm/if-node-version.svg)](http://www.npmtrends.com/if-node-version)
[![Build Status](https://travis-ci.org/mysticatea/if-node-version.svg?branch=master)](https://travis-ci.org/mysticatea/if-node-version)
[![Coverage Status](https://codecov.io/gh/mysticatea/if-node-version/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/if-node-version)
[![Dependency Status](https://david-dm.org/mysticatea/if-node-version.svg)](https://david-dm.org/mysticatea/if-node-version)Run a shell command if it's on the node of specified versions.
```bash
$ if-node-version ">=4" eslint lib test
``````bash
$ if-node-version "<6" node ./scripts/fallback.js
```Maybe this helps you together with [npm-scripts].
## Installation
`if-node-version` can be installed with [npm].
```bash
$ npm install --save-dev if-node-version
```- `if-node-version` requires Node.js `>=0.10.0`
## Usage
### CLI
```
Usage:
$ if-node-version [...args]Run a shell command if it's on the node of specified versions.
Otherwise, do nothing.Exit code is the exit code of the .
$ if-node-version
Check if it's on the node of specified versions.
Exit code is 0 if it's on the node of specified versions.
Otherwise, exit code is 1.$ if-node-version --help
Show this help text.
$ if-node-version --version
Show the version number of `if-node-version` command.
Parameters:
.... A text which specifies the version range of Node.js
This text format is defined by node-semver module:
https://www.npmjs.com/package/semver#ranges
......... The shell command to execute.
[...args] ......... Parameters of the shell command.Examples:
$ if-node-version ">=4" eslint lib test
$ if-node-version "<6" node ./scripts/fallback.js
```### Node API
```js
var spawnIfNodeVersion = require("if-node-version")
```#### spawnIfNodeVersion(versionRange, command, args, options)
Spawn a child process with specified parameters if the node version satisfies a given version range.
This function returns [child_process.ChildProcess] object.
- `versionRange` `{string}` - A text which specifies the version range of Node.js. This text format is defined by node-semver module: https://www.npmjs.com/package/semver#ranges
- `command` `{string}` - The command to run.
- `args` `{Array.}` - List of string arguments.
- `options` `{object}` - An option object. See [the document of `child_process.spawn`]#### spawnIfNodeVersion.sync(versionRange, command, args, options)
This is synchronous version of `spawnIfNodeVersion(versionRange, command, args, options)`.
This function returns the object as same as [child_process.spawnSync].
**Note:** If you use this function on node `0.10`, you will also need to install [spawn-sync].
## Changelogs
- [GitHub Releases]
## Contributing
Welcome your contributions!
Please use GitHub's issues/PRs.### Tools to develop
- `npm install` installs dependencies.
- `npm test` runs tests and measures coverage.
- `npm run coverage` opens the coverage result of `npm test`.
- `npm run clean` removes the coverage result of `npm test`.
- `npm run lint` analyzes codes by ESLint.
- `npm run watch` runs tests (without coverage measurement) when source code is modified.[npm]: https://www.npmjs.com/
[npm-scripts]: https://docs.npmjs.com/misc/scripts
[child_process.ChildProcess]: https://nodejs.org/api/child_process.html#child_process_class_childprocess
[the document of `child_process.spawn`]: https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
[child_process.spawnSync]: https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options
[spawn-sync]: https://www.npmjs.com/package/spawn-sync
[GitHub Releases]: https://github.com/mysticatea/if-node-version/releases