Bump browserslist to 4.28.9 and doiuse to 6.0.6 - #217
Merged
Merged
Conversation
The browserslist bump pulls caniuse-lite up to 1.0.30001810, which doiuse 6.0.2 cannot read: it passes every slug in its own feature list to caniuse's unpacker without checking whether caniuse-lite still carries it, so stylelint dies with "Cannot read properties of undefined (reading 'B')". doiuse 6.0.6 skips removed features instead. Both packages are transitive, so only the lockfile changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Supersedes #216, which fails CI.
The problem
The browserslist bump in #216 pulls
caniuse-litefrom 1.0.30001559 to 1.0.30001810, andnpm run stylelintthen crashes:The lockfile pins
doiuse@6.0.2(a transitive dependency ofstylelint-no-unsupported-browser-features). That version iterates its own feature list and hands each slug to caniuse's unpacker without checking whether caniuse-lite still carries it, so a removed slug arrives asundefined.doiuse@6.0.6guards against it:stylelint-no-unsupported-browser-features@7.0.0already declaresdoiuse: ^6.0.1, so 6.0.6 was in range all along — only the lockfile held it back, and CI'snpm installhonors the lockfile.The change
npm update browserslist doiuse, which resolves to browserslist 4.28.9, caniuse-lite 1.0.30001810, and doiuse 6.0.6. All three are transitive, sopackage.jsonis unchanged and the lockfile stays at lockfileVersion 2.Verification
Reproduced both directions in an isolated sandbox using this repo's
.stylelintrc,.browserslistrc, and_sass:TypeErroraboveOn this branch:
npm run stylelint— exit 0, and--fixleaves_sass/untouchednpm run test-content— exit 0npx tape tests/*.test.js— 200/200 passbundle exec jekyll buildwas not run locally (gems not installed); it already passes in CI and is unaffected by a lockfile change.Follow-up
Not addressed here: stylelint 15 is end-of-life and about 50 rules in
.stylelintrcare deprecated. Stylelint 16 removes them, andstylelint-no-unsupported-browser-features@8.xrequires stylelint 16 or newer. Worth its own issue.