Update dependencies and add node requirements #88
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses OS dependency issues and some QoL updates for users trying to install this project locally
Specify Node/NPM Version
Use the
engines
property inpackage.json
to hint to developers what the minimum (or preferred) node/npm versions to use should be. I set the versions to minimum major version but they should preferably be set to LTS versions (16.20.0)Also added an
.nvmrc
for convenience to set the node/npm version, if nvm is used.Reduce Install Complexity/Dependency Issues
gulp-sass
depends onnode-sass
which depends on buildingnode-gyp
which is notoriously error-prone if you don't have the exactly specific requirements for OS to use their prebuilt binaries. This can result in having to build node-gyp (takes forever, error prone) and building node-sass from source.Instead, use the drop-in replacement
gulp-dart-sass
which does not have these dependencies.Fix Gulp 3 errors on on older Node versions
Gulp 3 depends on a package,
graceful-fs
that patches native node.jsfs
module but that only works for node <11. To fix this update npm to >8 (node >16.14) in order to useoverrides
property inpackage.json
in order to forcegraceful-fs
to a major version that does not do the patch.