fix(build): replace node-sass with Dart Sass for Node 22 + Apple Silicon#1462
Open
fix(build): replace node-sass with Dart Sass for Node 22 + Apple Silicon#1462
Conversation
…con support node-sass (LibSass) doesn't support arm64 + Node 20/22. Migrates to Dart Sass (`sass` package) and fixes compound `@extend .md-button:active` selectors that aren't supported by Dart Sass. Updates .nvmrc to Node 22. - Replace `node-sass` with `sass` in devDependencies - sass-loader ^10.5.2 auto-detects Dart Sass (webpack 4 compatible) - Fix `@extend .md-button:active` → `@extend .md-button` in adaptiveCard.scss - Update .nvmrc from lts/fermium to 22 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Switch Docker image from circleci/node:fermium (Node 14) to cimg/node:22.22 - Add --legacy-peer-deps to npm ci (project has peer dep conflicts) - Update cache keys from fermium/npm-6 to node-22/npm-10 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The fibers native module (dep of @wdio/sync) is abandoned and cannot compile on Node 20+. Add an npm override to replace it with an empty stub package, allowing both npm install and npm ci to succeed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
node-sass(LibSass) withsass(Dart Sass) to support Node 22 and Apple Silicon (arm64)@extend .md-button:activeselectors inadaptiveCard.scssthat Dart Sass doesn't support — changed to@extend .md-button(the:activepseudo-state styles are already applied inline).nvmrcfromlts/fermium(Node 14) to Node 22Why
node-sass@4.x/7.xships native binaries compiled with LibSass, which has no prebuilt binaries for arm64 + Node 20/22. The LibSass project is deprecated. Dart Sass (sassnpm package) is the canonical maintained implementation and runs as pure JS — no native compilation needed.Details
package.jsonnode-sass→sass ^1.32.0;sass-loaderalready at^10.5.2(auto-detects Dart Sass, webpack 4 compatible).nvmrclts/fermium→22adaptiveCard.scss(src)@extend .md-button:active→@extend .md-button(3 occurrences)Test plan
npm install --legacy-peer-depssucceedsnpm startcompiles and serves at http://localhost:8000/Compiled with warnings(pre-existing font conflicts only, no errors)🤖 Generated with Claude Code