rixo / svench

A lightweight workbench to develop your Svelte components in isolation
svench-docs.vercel.app
207 stars 6 forks source link

cheap-watch error when using pnpm and svelte-kit #43

Closed tomatrow closed 2 years ago

tomatrow commented 2 years ago

Hi, svench is pretty cool compared to storybook, way more lean.

I get this error when running svelte-kit dev using pnpm with svench installed.

Error message ``` > site@0.0.1 dev /Users/ajcaldwell/src/svench-cheap-watch-error/site > svelte-kit dev Pre-bundling dependencies: svelte/store svelte svelte/animate svelte/easing svelte/internal (...and 18 more) (this will be run only when your dependencies or config have changed) > node_modules/.pnpm/cheap-watch@1.0.4/node_modules/cheap-watch/dist/CheapWatch.esm.js:1:9: error: No matching export in "browser-external:events" for import "EventEmitter" 1 │ import { EventEmitter } from 'events'; ╵ ~~~~~~~~~~~~ > node_modules/.pnpm/cheap-watch@1.0.4/node_modules/cheap-watch/dist/CheapWatch.esm.js:3:9: error: No matching export in "browser-external:util" for import "promisify" 3 │ import { promisify } from 'util'; ╵ ~~~~~~~~~ > Build failed with 2 errors: node_modules/.pnpm/cheap-watch@1.0.4/node_modules/cheap-watch/dist/CheapWatch.esm.js:1:9: error: No matching export in "browser-external:events" for import "EventEmitter" node_modules/.pnpm/cheap-watch@1.0.4/node_modules/cheap-watch/dist/CheapWatch.esm.js:3:9: error: No matching export in "browser-external:util" for import "promisify" Error: Build failed with 2 errors: node_modules/.pnpm/cheap-watch@1.0.4/node_modules/cheap-watch/dist/CheapWatch.esm.js:1:9: error: No matching export in "browser-external:events" for import "EventEmitter" node_modules/.pnpm/cheap-watch@1.0.4/node_modules/cheap-watch/dist/CheapWatch.esm.js:3:9: error: No matching export in "browser-external:util" for import "promisify" at failureErrorWithLog (/Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1475:15) at /Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1133:28 at runOnEndCallbacks (/Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:923:63) at buildResponseToResult (/Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1131:7) at /Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:1240:14 at /Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:611:9 at handleIncomingPacket (/Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:708:9) at Socket.readFromStdout (/Users/ajcaldwell/src/svench-cheap-watch-error/site/node_modules/.pnpm/esbuild@0.12.29/node_modules/esbuild/lib/main.js:578:7) at Socket.emit (node:events:394:28) at Socket.emit (node:domain:475:12)  ERROR  Command failed with exit code 1. ```

Workaround: run pnpm uninstall svench;svelte-kit dev for kit server, and run pnpm i -D svench;pnpx svench for svench server after.

To reproduce:

npm init svelte@next site
cd site
pnpm i -D svench
pnpm i --shamefully-hoist # so svench can find vite
pnpx svench # runs normally
pnpm run dev # displays said error
dimfeld commented 2 years ago

Looks like adding disableDependencyReinclusion: ['svench'] in svelte.config.js fixes this.

const config = {
   disableDependencyReinclusion: ['svench'],
   kit: {
      ...
   }
}