-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Core: Replace fs-extra
with the native APIs
#29126
Conversation
VS Code complains about not being able to find Node types, but building the package works. Need to investigate.
VS Code complains about not being able to find Node types, but building the package works. Need to investigate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
30 file(s) reviewed, 10 comment(s)
Edit PR Review Bot Settings
mockFiles = newMockFiles; | ||
} | ||
|
||
export const readFileSync = (filePath = '') => mockFiles[filePath]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: Default parameter value '' might cause unexpected behavior if undefined is passed
code/builders/builder-vite/src/plugins/external-globals-plugin.ts
Outdated
Show resolved
Hide resolved
const { dependencies = {}, peerDependencies = {} } = JSON.parse( | ||
await readFile(path, { encoding: 'utf-8' }) | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
style: Consider wrapping JSON.parse in a try-catch block to handle potential JSON parsing errors
EDIT: They were related to my PR. 😄 |
☁️ Nx Cloud ReportCI is running/has finished running commands for commit 8115974. As they complete they will appear below. Click to see the status, the terminal output, and the build insights. 📂 See all runs for this CI Pipeline Execution ✅ Successfully ran 1 targetSent with 💌 from NxCloud. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fantastic job!
Just to make sure, have you ensured all of these APIs are available in Node 18, which we currently support?
code/builders/builder-vite/src/plugins/external-globals-plugin.ts
Outdated
Show resolved
Hide resolved
Yup, everything I've used was introduced before Node 18. The only concern could be As for the failing |
Yes it looks flaky, don't worry about it. |
fs-extra
with the native APIsfs-extra
with the native APIs
Closes #29104. Works on #29038.
What I did
This PR replaces
fs-extra
with the native APIs in allcode/**/*
packages. Now it's only included inscripts/
and as a transitive dependency.Checklist for Contributors
Testing
I've confirmed that the unit tests pass locally in the packages I've made the changes to. Please advise on which integration/E2E tests I should run (if any).
The changes in this PR are covered in the following automated tests:
Manual testing
Here's what I did for most changes (in packages that have had the unit tests):
npx vitest
in the package directory before making any changes.npx vitest
after every change (for smaller packages) or utilize Vitest's watching capabilities (for bigger packages).As above, please advise if I should do some more testing here.
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal
,ci:merged
orci:daily
GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli/src/sandbox-templates.ts
Make sure this PR contains one of the labels below:
Available labels
bug
: Internal changes that fixes incorrect behavior.maintenance
: User-facing maintenance tasks.dependencies
: Upgrading (sometimes downgrading) dependencies.build
: Internal-facing build tooling & test updates. Will not show up in release changelog.cleanup
: Minor cleanup style change. Will not show up in release changelog.documentation
: Documentation only changes. Will not show up in release changelog.feature request
: Introducing a new feature.BREAKING CHANGE
: Changes that break compatibility in some way with current major version.other
: Changes that don't fit in the above categories.🦋 Canary release
This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the
@storybookjs/core
team here.core team members can create a canary release here or locally with
gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>
Greptile Summary
This PR replaces the
fs-extra
package with native Node.jsfs
andfs/promises
APIs across multiple files in the Storybook codebase, aiming to reduce dependencies and use built-in functionality.fs-extra
withnode:fs
andnode:fs/promises
in core packages and buildersreadFile
,writeFile
,cp
, andrm
fs-extra
from package.json files in affected packagesfsPromises.cp
usage in Node 16-21fs-extra
'sensureFile
functionality