Add .nvmrc & use NVM to manage installed Node version

We have decided to use NVM to manage installed Node versions locally
and in CI to ensure they match and produce consistent builds.

Running `nvm install` will install the Node version specified in the
`.nvmrc` file.

This is now consistent with Document Download Frontend.
See: alphagov/document-download-frontend#114

Signed-off-by: Richard Baker <richard.baker@digital.cabinet-office.gov.uk>
This commit is contained in:
Richard Baker
2022-04-05 12:00:26 +01:00
parent 5fa324a680
commit 799949a3f4
3 changed files with 13 additions and 7 deletions

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
16.14.0

View File

@@ -25,8 +25,8 @@ VIRTUALENV_ROOT := $(shell [ -z $$VIRTUAL_ENV ] && echo $$(pwd)/venv || echo $$V
.PHONY: bootstrap
bootstrap: generate-version-file ## Set up everything to run the app
pip3 install -r requirements_for_test.txt
npm install
. environment.sh; npm run build
source $(HOME)/.nvm/nvm.sh && nvm install && npm ci
. environment.sh; source $(HOME)/.nvm/nvm.sh && npm run build
.PHONY: watch-frontend
watch-frontend: ## Build frontend and watch for changes
@@ -56,7 +56,7 @@ generate-version-file: ## Generates the app version file
test: ## Run tests
flake8 .
isort --check-only ./app ./tests
npm test
source $(HOME)/.nvm/nvm.sh && npm test
py.test -n auto --maxfail=10 tests/
.PHONY: fix-imports

View File

@@ -13,17 +13,21 @@ GOV.UK Notify admin application - https://www.notifications.service.gov.uk/
At the moment we run Python 3.9 in production.
### NPM packages
### NodeJS & NPM
If you don't have NodeJS on your system, install it with homebrew.
```shell
brew install node
```
[NPM](npmjs.org) is Node's package management tool. `n` is a tool for managing different versions of Node. The following installs `n` and uses the long term support (LTS) version of Node.
`nvm` is a tool for managing different versions of NodeJS. Follow [the guidance on nvm's github repository](https://github.com/nvm-sh/nvm#installing-and-updating) to install it.
Once installed, run the following to switch to the version of NodeJS for this project. If you don't
have that version, it should tell you how to install it.
```shell
npm install -g n
n lts
nvm use
```
### `environment.sh`
@@ -75,4 +79,5 @@ To run a specific JavaScript test, you'll need to copy the full command from `pa
## Further docs
- [Working with static assets](docs/static-assets.md)
- [JavaScript documentation](https://github.com/alphagov/notifications-manuals/wiki/JavaScript-Documentation)
- [Updating dependencies](https://github.com/alphagov/notifications-manuals/wiki/Dependencies)