fix: set ignoreTryCatch: false in rollup commonjs plugin for Windows

minimatch 3.x uses `try { return require('path') } catch (e) {}` to
get the path module, falling back to `{ sep: '/' }`. With rollup's
commonjs plugin, `ignoreTryCatch: true` (the default) leaves
require('path') unconverted inside try blocks. At runtime in the ESM
bundle, require() is unavailable, so the catch fires and minimatch
uses '/' as the path separator — breaking all glob matching on Windows
where paths use backslashes.

Setting ignoreTryCatch: false ensures require('path') is converted to
an ESM import, giving minimatch the correct path.sep ('\\' on Windows).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jdx 2026-04-11 17:28:10 +00:00
parent 45d1740529
commit e8a0f70f2f
No known key found for this signature in database
GPG key ID: 584DADE86724B407
4 changed files with 108 additions and 97 deletions

192
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

9
package-lock.json generated
View file

@ -1221,6 +1221,15 @@
"node": ">=14"
}
},
"node_modules/@fastify/busboy": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
"integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
"license": "MIT",
"engines": {
"node": ">=14"
}
},
"node_modules/@humanfs/core": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",

View file

@ -14,7 +14,7 @@ const config = {
plugins: [
typescript(),
nodeResolve({ preferBuiltins: true }),
commonjs(),
commonjs({ ignoreTryCatch: false }),
json()
]
}