build: dependency updates & Node >=22.11 (pv-scripts, assemble-lite, pv-stylemark)#249
Merged
Merged
Conversation
Update all third-party dependencies. Notable major upgrades: sass-loader 17, postcss-preset-env 11, cssnano 8, copy-webpack-plugin 14, babel-loader 10, webpack-bundle-analyzer 5, react-dev-utils 12, typescript 6. Babel stays on 7.29.x; chalk and slash stay on their CommonJS-compatible majors. react-dev-utils 12 removed react-dev-utils/typescriptFormatter; tsTypeChecking.js now uses fork-ts-checker's built-in "codeframe" formatter instead. Several majors require Node >=22.11, so the engines floor, the root .nvmrc and the CI lint matrix are raised to Node 22 (CI actions updated to current versions). BREAKING CHANGE: minimum supported Node is now >=22.11.0 (was >=18.12.0). Consumers running Node 18/20 must upgrade their Node runtime. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Skill to verify local pv-scripts changes against a consumer project via a real build (direct-bin method). Always asks which project to test — nothing hardcoded. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update all third-party dependencies to their latest versions:
fs-extra 10 -> 11.3.5, glob 7 -> 13.0.6, handlebars 4.7.7 -> 4.7.9,
js-yaml 4 -> 5.2.0 (handlebars-helpers and yaml-front-matter were
already at their latest).
glob v9+ removed the callback API and its default export is no longer
callable, so helper/io-helper.js now uses the promise API
(const { glob } = require("glob") + await glob(...)). glob also stopped
sorting matches by default; asyncGlob now sorts explicitly to keep
partial/page/data registration order deterministic.
Note: js-yaml 5 defaults to the YAML 1.2 core schema, so timestamps in
data/*.yaml are parsed as strings instead of Date objects. Front-matter
is unaffected (it goes through yaml-front-matter's own bundled js-yaml).
Verified with a full LSG build of a real pv-stylemark consumer project.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Documents how to verify local assemble-lite changes by injecting the local package (incl. its nested node_modules) into a pv-stylemark consumer's node_modules, running `pv-stylemark prod`, then restoring. Mirrors the existing test-pv-scripts skill. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update all third-party dependencies. Notable major upgrades: marked 12 -> 18, glob 10 -> 13, js-yaml 4 -> 5, vite 5 -> 8, typescript 5 -> 6. slash stays on its CommonJS-compatible major (3.x). marked 18 keeps the custom exampleParser extension API working — verified functionally identical output (only cosmetic whitespace in <details> blocks). marked 18 requires Node >=20, so the engines floor is raised to >=22.11.0 to match pv-scripts and the monorepo standard. BREAKING CHANGE: minimum supported Node is now >=22.11.0 (was >=18.0.0). Verified with a full LSG build (349 components) of a real pv-stylemark consumer project — identical output vs. the previously published version. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sass deprecates @import (removal in Dart Sass 3.0). Switch the UI stylesheets to the @use module system; each stylesheet now explicitly @uses the variables/colors/typography/fonts it needs (as *, so no member references change). Extract the base/page rules (reset, .dds-page, .dds-page__main) out of index.scss into page.scss so index.scss is a pure entry file and the compiled CSS keeps its original rule order. Compiled CSS is functionally identical: same rules, same order; only a cosmetic selector-order swap within one @extend group remains. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolved pv-scripts package.json/package-lock.json conflicts: kept the dependency-update versions and added develop's resolve-url-loader@5.0.0 (PR #247). compileCSS.js and pv-create-component/config.js auto-merged. Co-Authored-By: Claude Opus 4.8 (1M context) <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
Dependency updates across pv-scripts, assemble-lite and pv-stylemark, plus a Node engine bump to
>=22.11for the two CLIs.developis merged into this branch so it integrates cleanly with theresolve-url-loaderfeature (#247) that landed there in the meantime.Per package
pv-scripts—build(pv-scripts): update deps & bump Node to >=22.11>=18.12.0→>=22.11.0typescript5.7→6.0,sass-loader16→17,cssnano7→8,postcss-preset-env10→11,copy-webpack-plugin12→14,babel-loader9→10,react-dev-utils11→12,webpack-bundle-analyzer4→5webpack5.96→5.108,sass1.75→1.101,@babel/*7.26→7.29,postcss,css-loader,html-webpack-plugin,mini-css-extract-plugin,webpack-dev-server, …assemble-lite—build(assemble-lite): update deps & adapt glob v9+ APIhelper/io-helper.jsadapted to the glob v9+ API.pv-stylemark—build(pv-stylemark): update deps & bump Node to >=22.11>=22.11.0@importto@use.Tooling
test-pv-scripts,test-assemble-lite). There is no unit-test suite, so these run a real consumer build to validate changes..nvmrcbumped;.github/workflows/lint.ymladjusted.Verification
pv-scriptsvalidated with a real production-consumer build (Viessmann AEM corporate frontend) on top of thedevelopmerge:Compiled successfully., 0 warnings, full JS/CSS + font artifacts emitted. The newresolve-url-loader(feat(pv-scripts): resolve paths to assets, relative to the scss file with the reference itself #247) was confirmed to work together with the bumpedsass-loader17.pv-scriptsandpv-stylemark.develop): asseturl()in SCSS is now resolved relative to the file that contains it, not the css entry. Consumers must migrate entry-relative paths (e.g.../assets/…→../../assets/…). Confirmed compatible withsass-loader17 in the consumer build above.sass1.101 surfaces Dart Sass 3.0 deprecation warnings in consumer SCSS (e.g. globalpercentage()→math.percentage()). Non-fatal, but consumers should clean these up.typescriptbumps — exercised by the consumer build above; consumers should re-run their own builds.🤖 Generated with Claude Code