chore: Enable yarn package management #484
Merged
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.
Description
Enables the use of the Yarn package manager in a limited fashion.
What's included?
yarn.lock
file, treated as a binary using.gitattributes
( prevents merge conflict hell ).travis.yml
to install using yarnnode-sass
. Issue documented in build file & readme.yarn install
saves 40 - 50 seconds on the install, ~6 of which are lost on the rebuild..travis.yml
to build onlydevelop & master
plus any openpull request
PhantomJS
for Installing phantomjs-prebuilt fails due to no npm_config_tmp yarnpkg/yarn#1538General Tests for Every PR
ng serve --aot
still works.npm run lint
passes.npm test
passes and code coverage is not lower.npm run build
still works.A note about using
yarn
.Speed & deterministic install benefits aside, using Yarn comes with a bit of baggage. The lock file is something that has to be maintained to be of any real value.
Any PR that changes a package version will also have to update the lock file accordingly. Simplest way to do that is to make the changes via yarn, optionally you can use npm and
rm -rf yarn.lock && yarn install
to pick up the dependency changes in the pull request.The lock file is then committed along with any other versioned file. Certainly not a major issue but it is something that has to become part of the development process at the maintainer level.
Closes #313