chore: more efficient script execution#862
Merged
adalinesimonian merged 3 commits intomainfrom Mar 14, 2026
Merged
Conversation
1ab2e96 to
83acf47
Compare
--experimental-transform types is being removed in Node.js 26, but the functionality in --experimental-strip-types has been stable since 22.18. We use 22.17.0 due to VS Code 1.103, the lowest version we support, bundling 22.17. If we up the lowest supported version of VS Code to 1.104, then we will have Node.js 22.18 at minimum and simply get rid of the flag.
jeddy3
approved these changes
Mar 14, 2026
Member
jeddy3
left a comment
There was a problem hiding this comment.
All good improvements, thank you!
We do a lot on the CI for the extension, and so it's great to see efficiency improvements.
Member
Author
|
@jeddy3 Thanks! :) Do we need to allowlist the google/wireit action? |
Member
Done. |
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.
Increase the speed and efficacy of our npm scripts by implementing the following changes:
npm runwithnode --runacross scripts, CI, VS Code tasks, and documentation to avoid npm's startup overhead on every invocation.tsxwithnode --experimental-transform-typesfor faster TypeScript execution in scripts.When inputs haven't changed since the last run, wireit skips the command entirely. Dependency ordering between scripts is declared in
package.jsonrather than encoded into chained shell commands, so wireit can also parallelise independent tasks and avoid redundant work when multiple scripts share the same dependency.This means no more of the annoying hassle of running
npm run lint, then Prettier failing, then fixing the Prettier issues and having to runnpm run lintagain to get the ESLint results, and so on; or, the alternative, juggling the different lint subscripts manually. Now we just runnode --run lintonce, everything is done in parallel. And if only let's say the readme is changed, and we already rannode --run lintbefore, then the next time we run it, only Prettier and cspell will run, and ESLint will be skipped because its inputs haven't changed. This saves a lot of time and annoyance when running scripts repeatedly during development.In CI, wireit's GitHub Actions caching means that re-runs and subsequent pushes to the same PR can skip scripts whose inputs haven't changed since the last workflow run, rather than rebuilding everything from scratch every time.
The other two changes speed up script execution by avoiding spawning extra processes.
node --runskips the npm startup overhead, andnode --experimental-transform-typesskips the overhead of starting uptsxwhen Node.js can now transform TypeScript natively.