Include nested files in ESM compilation #30441
Open
+1
−1
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.
What I did
Fixed a compilation issue where nested ESM compiled files are overridden by CJS one due to a misconfiguration in the glob pattern when renaming files to
.mjs
.Before, nested ESM files (like
angular/dist/client/render.mjs
) are not properly produced:After, nested ESM files are correctly produced:
It is particularly an issue with
@storybook/testing-angular
where deep imports are used but proper ESM modules are not produced, leading to errors like:Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
nx build angular
dist/client/*.mjs
files are producedDocumentation
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-storybook/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
Modified the glob pattern in TypeScript compilation script to properly handle nested ESM files, ensuring correct module format output for deep imports.
'dist/*.js'
to'dist/**/*.js'
inscripts/prepare/tsc.ts
to include nested directory filesangular/client/render.mjs
) were being overridden by CommonJS versions@storybook/testing-angular
where deep imports require proper ESM modules💡 (1/5) You can manually trigger the bot by mentioning @greptileai in a comment!