semantic-release/docs/node-version.md
Pierre Vanduynslager ed89361d7c docs: documentation improvements
**Refactor and clarify the documentation in `README.md`**
- Add Highlights
- Add a Table of contents
- Clarify the way semantic-release works
- Clarify relationship with the CI environments
- Describe local install for Node projects (with a `package.json`) and global install for non-JavaScript projects
- Explain CI general configuration (environment variables and a run after all jobs are successful)
- Clarify configuration (via config file or CLI arguments)
- Clarify plugin roles and configuration
- Add doc for shareable configuration
- Add recipes
- Add resources (Videos, articles, tutorials)
- Add a Support section
- Add a Team section

**Add the following FAQs**
- How can I use a npm build script that requires the `package.json`’s version ?
- Can I use Semantic-release with Yarn?
- Can I use Semantic-release to publish non-JavaScript packages?
- Can I use Semantic-release with any CI service?
- Can I use Semantic-release with any GitLab?
- Can I use Semantic-release with any Git hosted environment?
- Can I skip the release to the npm registry?
- Can I use .npmrc options?
- How can I set the access level of the published npm package?
- Can I use Semantic-release to publish a package on Artifactory?
- Can I set the initial release version of my package to 0.0.1?
- Why does semantic-release require Node version >= 8?

**Clarify Nove 8 requirement and solutions**
- Add Node version requirement explanation and solutions
- [X] Display a link to the documentation when running on Node < 8 version

**Add recipes**
- Travis
- GitLab CI
- Travis with build stages - To be done in #573
- CircleCI workflows - To be done in #573
2018-01-05 16:05:30 -05:00

2.3 KiB

Node version requirement

semantic-release is written using the latest ECMAScript 2017 features, without transpilation which requires requires Node version 8 or higher.

semantic-release is meant to be used in a CI environment as a development support tool, not as a production dependency. Therefore the only constraint is to run the semantic-release in a CI environment providing Node 8 or higher.

See our Node Support Policy for our long-term promise regarding Node version support.

Run at least one CI job with Node >= 8

The recommended approach is to run the semantic-release command from a CI job running on Node 8 or higher. This can either be a job used by your project to test on Node 8 or a dedicated job for the release steps.

See CI configuration and CI configuration recipes for more details.

Alternative solutions

Use npx

npx is a CLI to execute npm binaries. It is bundled with npm >= 5.4, or can be installed via npm install -g npx.

npx can be used to download the Node 8 package published on npm and use it to execute the semantic-release command.

If you are using a local semantic-release installation:

$ npm install -g npx && npx -p node@8 -c "npm run semantic-release"

If you are using a global semantic-release installation:

# For global semantic-release install
$ npm install -g semantic-release npx && npx -p node@8 -c "semantic-release"

Use nvm

If your CI environment provides nvm you can use it to switch to Node 8 before running the semantic-release command.

If you are using a local semantic-release installation:

$ nvm install 8 && npm run semantic-release

If you are using a global semantic-release installation:

$ nvm install 8 && npm install -g semantic-release && semantic-release