Skip to content

fix: Resolve entries against cwd - #1091

Open
rschristian wants to merge 3 commits into
masterfrom
fix/glob-entry
Open

fix: Resolve entries against cwd#1091
rschristian wants to merge 3 commits into
masterfrom
fix/glob-entry

Conversation

@rschristian

@rschristianrschristian commented Feb 16, 2025

Copy link
Copy Markdown
Collaborator

preactjs/preact#4677

tiny-glob resolves against opts.cwd or ., and because we don't pass cwd into tiny-glob, this can result in incorrect file paths when used with Microbundle's --cwd flag.

Edit: Meant to open this as a draft, needs tests & ideally errors thrown for missing inputs Edit2: Unfortunately we don't throw on missing inputs anywhere else so that'd be inconsistent.

@changeset-bot

changeset-botBot commented Feb 16, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 0485a4c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actionsBot commented Feb 16, 2025

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 65.9 kB

ℹ️ View Unchanged
FilenameSize
test/fixtures/alias-external/dist/alias-external.esm.mjs85 B
test/fixtures/alias-external/dist/alias-external.js80 B
test/fixtures/alias-external/dist/alias-external.umd.js140 B
test/fixtures/alias/dist/alias-mapping.esm.mjs62 B
test/fixtures/alias/dist/alias-mapping.js62 B
test/fixtures/alias/dist/alias-mapping.umd.js119 B
test/fixtures/async-iife-ts/dist/async-iife-ts.esm.mjs113 B
test/fixtures/async-iife-ts/dist/async-iife-ts.js110 B
test/fixtures/async-iife-ts/dist/async-iife-ts.umd.js160 B
test/fixtures/async-iife-ts/dist/index.d.ts20 B
test/fixtures/async-ts/dist/async-ts.esm.mjs158 B
test/fixtures/async-ts/dist/async-ts.js149 B
test/fixtures/async-ts/dist/async-ts.umd.js246 B
test/fixtures/async-ts/dist/index.d.ts78 B
test/fixtures/basic-babelrc/dist/basic-babelrc.esm.mjs159 B
test/fixtures/basic-babelrc/dist/basic-babelrc.js156 B
test/fixtures/basic-babelrc/dist/basic-babelrc.umd.js197 B
test/fixtures/basic-compress-false/dist/basic-compress-false.esm.mjs303 B
test/fixtures/basic-compress-false/dist/basic-compress-false.js301 B
test/fixtures/basic-compress-false/dist/basic-compress-false.umd.js427 B
test/fixtures/basic-css/dist/basic-css.css107 B
test/fixtures/basic-css/dist/basic-css.esm.mjs143 B
test/fixtures/basic-css/dist/basic-css.js139 B
test/fixtures/basic-css/dist/basic-css.umd.js228 B
test/fixtures/basic-dashed-external/dist/basic-dashed-external.esm.mjs257 B
test/fixtures/basic-dashed-external/dist/basic-dashed-external.js311 B
test/fixtures/basic-dashed-external/dist/basic-dashed-external.umd.js401 B
test/fixtures/basic-flow/dist/basic-lib-flow.esm.mjs105 B
test/fixtures/basic-flow/dist/basic-lib-flow.js102 B
test/fixtures/basic-flow/dist/basic-lib-flow.umd.js205 B
test/fixtures/basic-json/dist/basic-json.esm.mjs128 B
test/fixtures/basic-json/dist/basic-json.js125 B
test/fixtures/basic-json/dist/basic-json.umd.js216 B
test/fixtures/basic-multi-source-css/dist/a.css98 B
test/fixtures/basic-multi-source-css/dist/a.esm.mjs134 B
test/fixtures/basic-multi-source-css/dist/a.js130 B
test/fixtures/basic-multi-source-css/dist/a.umd.js226 B
test/fixtures/basic-multi-source-css/dist/b.css96 B
test/fixtures/basic-multi-source-css/dist/b.esm.mjs135 B
test/fixtures/basic-multi-source-css/dist/b.js131 B
test/fixtures/basic-multi-source-css/dist/b.umd.js227 B
test/fixtures/basic-multi-source/dist/a.esm.mjs78 B
test/fixtures/basic-multi-source/dist/a.js73 B
test/fixtures/basic-multi-source/dist/a.umd.js134 B
test/fixtures/basic-multi-source/dist/b.esm.mjs78 B
test/fixtures/basic-multi-source/dist/b.js73 B
test/fixtures/basic-multi-source/dist/b.umd.js134 B
test/fixtures/basic-no-compress/dist/basic-no-compress.esm.mjs301 B
test/fixtures/basic-no-compress/dist/basic-no-compress.js299 B
test/fixtures/basic-no-compress/dist/basic-no-compress.umd.js423 B
test/fixtures/basic-no-pkg-main/dist/basic-no-pkg-main.js313 B
test/fixtures/basic-node-internals/dist/basic-node-internals.js234 B
test/fixtures/basic-ts/dist/basic-lib-ts.esm.mjs157 B
test/fixtures/basic-ts/dist/basic-lib-ts.js153 B
test/fixtures/basic-ts/dist/basic-lib-ts.umd.js235 B
test/fixtures/basic-ts/dist/car.d.ts116 B
test/fixtures/basic-ts/dist/index.d.ts86 B
test/fixtures/basic-tsx/dist/basic-lib-tsx.esm.mjs253 B
test/fixtures/basic-tsx/dist/basic-lib-tsx.js246 B
test/fixtures/basic-tsx/dist/basic-lib-tsx.umd.js330 B
test/fixtures/basic-tsx/dist/index.d.ts71 B
test/fixtures/basic-with-cwd/basic/dist/basic.esm.mjs223 B
test/fixtures/basic-with-cwd/basic/dist/basic.js219 B
test/fixtures/basic-with-cwd/basic/dist/basic.umd.js299 B
test/fixtures/basic/dist/basic-lib.esm.mjs226 B
test/fixtures/basic/dist/basic-lib.js223 B
test/fixtures/basic/dist/basic-lib.umd.js305 B
test/fixtures/class-decorators-ts/dist/class-decorators-ts.esm.mjs390 B
test/fixtures/class-decorators-ts/dist/class-decorators-ts.js387 B
test/fixtures/class-decorators-ts/dist/class-decorators-ts.umd.js452 B
test/fixtures/class-decorators-ts/dist/index.d.ts126 B
test/fixtures/class-properties/dist/class-properties.esm.mjs139 B
test/fixtures/class-properties/dist/class-properties.js134 B
test/fixtures/class-properties/dist/class-properties.umd.js234 B
test/fixtures/css-modules--false/dist/css-modules--false.css114 B
test/fixtures/css-modules--false/dist/css-modules--false.esm.mjs52 B
test/fixtures/css-modules--false/dist/css-modules--false.js49 B
test/fixtures/css-modules--false/dist/css-modules--false.umd.js156 B
test/fixtures/css-modules--null/dist/css-modules--null.css118 B
test/fixtures/css-modules--null/dist/css-modules--null.esm.mjs111 B
test/fixtures/css-modules--null/dist/css-modules--null.js110 B
test/fixtures/css-modules--null/dist/css-modules--null.umd.js200 B
test/fixtures/css-modules--string/dist/css-modules--string.css144 B
test/fixtures/css-modules--string/dist/css-modules--string.esm.mjs168 B
test/fixtures/css-modules--string/dist/css-modules--string.js166 B
test/fixtures/css-modules--string/dist/css-modules--string.umd.js263 B
test/fixtures/css-modules--true/dist/css-modules--true.css115 B
test/fixtures/css-modules--true/dist/css-modules--true.esm.mjs141 B
test/fixtures/css-modules--true/dist/css-modules--true.js139 B
test/fixtures/css-modules--true/dist/css-modules--true.umd.js230 B
test/fixtures/custom-babelrc/dist/custom-babelrc.esm.mjs261 B
test/fixtures/custom-babelrc/dist/custom-babelrc.js254 B
test/fixtures/custom-babelrc/dist/custom-babelrc.umd.js345 B
test/fixtures/custom-outputs-alt/dist/custom-outputs-alt.cjsmain.js232 B
test/fixtures/custom-outputs-alt/dist/custom-outputs-alt.esmodule.mjs158 B
test/fixtures/custom-outputs-alt/dist/custom-outputs-alt.jsnextmain.mjs236 B
test/fixtures/custom-outputs-alt/dist/custom-outputs-alt.unpkg.js315 B
test/fixtures/custom-outputs/dist/custom-outputs.exportsx.mjs154 B
test/fixtures/custom-outputs/dist/custom-outputs.js225 B
test/fixtures/custom-outputs/dist/custom-outputs.modulex.mjs231 B
test/fixtures/custom-outputs/dist/custom-outputs.umdx.js307 B
test/fixtures/custom-source-with-cwd/custom-source/dist/custom-src.esm.mjs226 B
test/fixtures/custom-source-with-cwd/custom-source/dist/custom-src.js222 B
test/fixtures/custom-source-with-cwd/custom-source/dist/custom-src.umd.js304 B
test/fixtures/custom-source/dist/custom-source.esm.mjs226 B
test/fixtures/custom-source/dist/custom-source.js222 B
test/fixtures/custom-source/dist/custom-source.umd.js306 B
test/fixtures/default-named/dist/default-named.esm.mjs116 B
test/fixtures/default-named/dist/default-named.js97 B
test/fixtures/default-named/dist/default-named.umd.js201 B
test/fixtures/define-expression/dist/define-expression.esm.mjs56 B
test/fixtures/define/dist/define.esm.mjs55 B
test/fixtures/define/dist/define.js55 B
test/fixtures/define/dist/define.umd.js109 B
test/fixtures/esnext-ts/dist/esnext-ts.esm.mjs1.04 kB
test/fixtures/esnext-ts/dist/esnext-ts.js1.03 kB
test/fixtures/esnext-ts/dist/esnext-ts.umd.js1.1 kB
test/fixtures/esnext-ts/dist/index.d.ts68 B
test/fixtures/inline-source-map/dist/inline-source-map.esm.mjs759 B
test/fixtures/inline-source-map/dist/inline-source-map.js753 B
test/fixtures/inline-source-map/dist/inline-source-map.umd.js841 B
test/fixtures/jsx/dist/jsx.esm.mjs269 B
test/fixtures/jsx/dist/jsx.js263 B
test/fixtures/jsx/dist/jsx.umd.js340 B
test/fixtures/macro/dist/macro-lib.esm.mjs88 B
test/fixtures/macro/dist/macro-lib.js84 B
test/fixtures/macro/dist/macro-lib.umd.js187 B
test/fixtures/mangle-json-file/dist/mangle-json-file.esm.mjs147 B
test/fixtures/mangle-json-file/dist/mangle-json-file.js144 B
test/fixtures/mangle-json-file/dist/mangle-json-file.umd.js235 B
test/fixtures/minify-config-boolean/dist/minify-config-boolean.esm.mjs160 B
test/fixtures/minify-config-boolean/dist/minify-config-boolean.js153 B
test/fixtures/minify-config-boolean/dist/minify-config-boolean.umd.js255 B
test/fixtures/minify-config/dist/minify-config.esm.mjs141 B
test/fixtures/minify-config/dist/minify-config.js137 B
test/fixtures/minify-config/dist/minify-config.umd.js225 B
test/fixtures/minify-path-config/dist/minify-path-config.esm.mjs149 B
test/fixtures/minify-path-config/dist/minify-path-config.js146 B
test/fixtures/minify-path-config/dist/minify-path-config.umd.js237 B
test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/dist/minify-path-parent-dir.esm.mjs151 B
test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/dist/minify-path-parent-dir.js148 B
test/fixtures/minify-path-parent-dir-with-cwd/minify-path-parent-dir/dist/minify-path-parent-dir.umd.js241 B
test/fixtures/modern-generators/dist/modern-generators.esm.mjs281 B
test/fixtures/modern-generators/dist/modern-generators.js279 B
test/fixtures/modern-generators/dist/modern-generators.modern.mjs157 B
test/fixtures/modern-generators/dist/modern-generators.umd.js359 B
test/fixtures/modern/dist/modern-lib.modern.mjs152 B
test/fixtures/name-custom-amd/dist/name-custom-amd.esm.mjs229 B
test/fixtures/name-custom-amd/dist/name-custom-amd.js225 B
test/fixtures/name-custom-amd/dist/name-custom-amd.umd.js311 B
test/fixtures/name-custom-cli/dist/name-custom.esm.mjs226 B
test/fixtures/name-custom-cli/dist/name-custom.js223 B
test/fixtures/name-custom-cli/dist/name-custom.umd.js310 B
test/fixtures/no-pkg-name/dist/no-pkg-name.esm.mjs227 B
test/fixtures/no-pkg-name/dist/no-pkg-name.js224 B
test/fixtures/no-pkg-name/dist/no-pkg-name.umd.js308 B
test/fixtures/no-pkg/dist/no-pkg.esm.mjs224 B
test/fixtures/no-pkg/dist/no-pkg.js221 B
test/fixtures/no-pkg/dist/no-pkg.umd.js302 B
test/fixtures/optional-chaining-ts/dist/index.d.ts108 B
test/fixtures/optional-chaining-ts/dist/optional-chaining-ts.esm.mjs154 B
test/fixtures/optional-chaining-ts/dist/optional-chaining-ts.js148 B
test/fixtures/optional-chaining-ts/dist/optional-chaining-ts.umd.js247 B
test/fixtures/parameters-rest-closure/dist/parameters-rest-closure.esm.mjs203 B
test/fixtures/parameters-rest-closure/dist/parameters-rest-closure.js192 B
test/fixtures/parameters-rest-closure/dist/parameters-rest-closure.umd.js284 B
test/fixtures/pretty/dist/pretty.esm.mjs6.58 kB
test/fixtures/pretty/dist/pretty.js6.56 kB
test/fixtures/pretty/dist/pretty.umd.js6.71 kB
test/fixtures/publish-config/dist/bar.js87 B
test/fixtures/publish-config/dist/foo.d.ts60 B
test/fixtures/pure/dist/pure.esm.mjs108 B
test/fixtures/pure/dist/pure.js98 B
test/fixtures/pure/dist/pure.umd.js197 B
test/fixtures/raw/dist/raw.esm.mjs1.41 kB
test/fixtures/raw/dist/raw.js1.4 kB
test/fixtures/raw/dist/raw.umd.js1.52 kB
test/fixtures/shebang/dist/shebang.esm.mjs125 B
test/fixtures/shebang/dist/shebang.js118 B
test/fixtures/shebang/dist/shebang.umd.js216 B
test/fixtures/terser-annotations/dist/terser-annotations.esm.mjs179 B
test/fixtures/terser-annotations/dist/terser-annotations.js171 B
test/fixtures/terser-annotations/dist/terser-annotations.umd.js257 B
test/fixtures/ts-custom-declaration/dist/index.esm.mjs100 B
test/fixtures/ts-custom-declaration/dist/index.js89 B
test/fixtures/ts-custom-declaration/dist/index.umd.js205 B
test/fixtures/ts-declaration/dist/index.esm.mjs100 B
test/fixtures/ts-declaration/dist/index.js89 B
test/fixtures/ts-declaration/dist/index.umd.js201 B
test/fixtures/ts-jsx/dist/index.d.ts52 B
test/fixtures/ts-jsx/dist/ts-jsx.esm.mjs163 B
test/fixtures/ts-jsx/dist/ts-jsx.js158 B
test/fixtures/ts-jsx/dist/ts-jsx.umd.js251 B
test/fixtures/ts-mixed-exports/dist/car.d.ts116 B
test/fixtures/ts-mixed-exports/dist/index.d.ts92 B
test/fixtures/ts-mixed-exports/dist/ts-mixed-exports.esm.mjs168 B
test/fixtures/ts-mixed-exports/dist/ts-mixed-exports.js160 B
test/fixtures/ts-mixed-exports/dist/ts-mixed-exports.umd.js261 B
test/fixtures/ts-module/dist/foo.d.ts60 B
test/fixtures/ts-module/dist/index.d.ts63 B
test/fixtures/ts-module/dist/ts-module.esm.mjs108 B
test/fixtures/ts-module/dist/ts-module.js97 B
test/fixtures/ts-module/dist/ts-module.umd.js197 B
test/fixtures/visualizer/dist/visualizer.esm.mjs119 B
test/fixtures/visualizer/dist/visualizer.js177 B
test/fixtures/visualizer/dist/visualizer.umd.js259 B
test/fixtures/worker-loader/dist/worker-35b22e56.js125 B
test/fixtures/worker-loader/dist/worker-7e1b9921.js107 B
test/fixtures/worker-loader/dist/worker-loader.esm.mjs181 B
test/fixtures/worker-loader/dist/worker-loader.modern.mjs174 B

compressed-size-action

@rschristian
rschristian marked this pull request as draft February 17, 2025 07:54
@rschristian
rschristianforce-pushed the fix/glob-entry branch 2 times, most recently from c4ef5dc to 4167d53CompareOctober 24, 2025 02:51
Comment on lines +59 to +62
// Now that dirs have been cleared, reset the fixturePath back to the parent dir
if (fixtureDir.endsWith('-with-cwd')) {
fixturePath = resolve(FIXTURES_DIR, fixtureDir);
}

@rschristianrschristianOct 24, 2025

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was super broken & went unnoticed for a long time.

Basically we make the assumption that a test fixture foo-with-cwd is testing --cwd ./foo, and to make sure we were clearing out past runs, set the fixture path to fixtures/foo-with-cwd/foo so that rimraf would clear out all test cases the same way. However, we never set this path back!

When it came time to get the build script & execute it, the CWD was /foo-with-cwd/foo... none of these nested directories actually had a build script defined, as it was meant to come from the parent, and so all of the -with-cwd tests were just running plain microbundle. The build script we provided for our tests was entirely ignored as the test was always ran from the incorrect working dir.

Easy fix though, we just have to reset it.

@rschristian
rschristian marked this pull request as ready for review October 24, 2025 03:00
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@rschristian