With #1289 the `nodejs` dependency management has
been changed from `yarn` to `npm` missing the one
or other important requirement.
This change streamlines the management by ...
* adding a `.nvmrc` file to the repository root to
allow automatic nodejs/npm switch if the nvm shell
switching is available on the host system.
* adding a `.npmrc` file to specify the lock file
version and engine option.
* adding `nodejs` and `npm` version constraints as
`engine` specification to the `package.json` file.
* remove `package-lock.json` from `.gitignore` and
add it to the repository to ensure reproducable
setups - which becomes more important if extension
get custom backend/frontend modules and javascript.
* adding `package-lock.json` to exclude it from archive,
due to remove from the `.gitignore` file.
* ensuring that new development files are excluded from
packaging and publishing.
* use `npm ci` in GitHub action workflows to install
from the lock-file.
Note: This change unblocks adding `npm` dispatching
to `Build/Scripts/runTests.sh`.
Resolves: #1301
Related: #1289
- Move npm tools and config to default places
- Remove now unnecessary config file parameter from npm scripts
- editorconfig and eslint config contradict, adapt editorconfig
- switch JS indent linting to TYPO3 coding standard of 2 spaces
- adapt composer scripts for new npm location