Describe the bug
In my electron app I went all-in on ESM and use webpack@5.95.0 to bundle typescript@5.6.3 code esm-style using "type": "module" and the following webpack config (only the relevant part):
{
"output": {
"library": {
"type": "module"
},
"chunkFormat": "module",
"module": true
},
"experiments": {
"topLevelAwait": true,
"outputModule": true
}
}
and the following tsconfig.json compilerOptions:
{
"module": "NodeNext",
"moduleResolution": "NodeNext",
"moduleDetection": "force",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"lib": ["DOM", "ESNext"],
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"jsx": "react-jsx",
"strict": true,
"pretty": true,
"sourceMap": true,
"skipLibCheck": true,
"allowJs": false
}
Note that I have to use NodeNext because I'm using ESM on both the main thread (node.js) and the renderer (browser).
Sandbox or Video

I've made a minimal reproduction repo:
https://github.com/tom2strobl/usegesture-webpack-nodenext
Maybe https://github.com/arethetypeswrong/arethetypeswrong.github.io helps here? I think it's just a matter of changing exports.
Afaik usage of module for example is deprecated:
|
"module": "dist/use-gesture-react.esm.js", |
in favor of an export map (this for example is the one from fuse-js):
{
"exports": {
".": {
"types": "./dist/fuse.d.ts",
"import": "./dist/fuse.mjs",
"require": "./dist/fuse.cjs"
},
"./min": {
"types": "./dist/fuse.d.ts",
"import": "./dist/fuse.min.mjs",
"require": "./dist/fuse.min.cjs"
}
}
}
Information:
- Use Gesture version: v10.3.1
- Device: MacBook M1 Max
- OS: MacOS 15.0.1 (24A348)
- Browser: Chromium V8 in Electron
Checklist:
Describe the bug
In my electron app I went all-in on ESM and use webpack@5.95.0 to bundle typescript@5.6.3 code esm-style using
"type": "module"and the following webpack config (only the relevant part):{ "output": { "library": { "type": "module" }, "chunkFormat": "module", "module": true }, "experiments": { "topLevelAwait": true, "outputModule": true } }and the following
tsconfig.jsoncompilerOptions:{ "module": "NodeNext", "moduleResolution": "NodeNext", "moduleDetection": "force", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "resolveJsonModule": true, "lib": ["DOM", "ESNext"], "target": "ES2022", "declaration": true, "declarationMap": true, "jsx": "react-jsx", "strict": true, "pretty": true, "sourceMap": true, "skipLibCheck": true, "allowJs": false }Note that I have to use
NodeNextbecause I'm using ESM on both the main thread (node.js) and the renderer (browser).Sandbox or Video

I've made a minimal reproduction repo:
https://github.com/tom2strobl/usegesture-webpack-nodenext
Maybe https://github.com/arethetypeswrong/arethetypeswrong.github.io helps here? I think it's just a matter of changing exports.
Afaik usage of
modulefor example is deprecated:use-gesture/packages/react/package.json
Line 23 in c779631
in favor of an export map (this for example is the one from fuse-js):
{ "exports": { ".": { "types": "./dist/fuse.d.ts", "import": "./dist/fuse.mjs", "require": "./dist/fuse.cjs" }, "./min": { "types": "./dist/fuse.d.ts", "import": "./dist/fuse.min.mjs", "require": "./dist/fuse.min.cjs" } } }Information:
Checklist:
touch-action: noneto the draggable element.