Update dependencies and add node requirements #88
+4,920
−2,172
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
enginesproperty inpackage.jsonto 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
.nvmrcfor convenience to set the node/npm version, if nvm is used.Reduce Install Complexity/Dependency Issues
gulp-sassdepends onnode-sasswhich depends on buildingnode-gypwhich 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-sasswhich does not have these dependencies.Fix Gulp 3 errors on on older Node versions
Gulp 3 depends on a package,
graceful-fsthat patches native node.jsfsmodule but that only works for node <11. To fix this update npm to >8 (node >16.14) in order to useoverridesproperty inpackage.jsonin order to forcegraceful-fsto a major version that does not do the patch.