Repository navigation
Getting "Could not resolve msw" when using with vite #65
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
I tried using this library but couldn't make it work.
- I'm using msw for quite some time
- I tried to integrate
sourcewith our browser handlers - Getting this error:
Could not resolve "msw"
Reproduction steps
- Use vite with a few react plugins, including
@modyfi/vite-plugin-yamlto load open api specs in YAML:
react(),
viteTsconfigPaths(),
nodePolyfills({
// Whether to polyfill `node:` protocol imports.
protocolImports: true,
globals: {
Buffer: true,
global: true,
process: true,
},
}),
svgrPlugin({
svgrOptions: { dimensions: true },
}),
viteYaml(),- Declare a browser handler:
import { fromOpenApi } from "@mswjs/source/open-api";
import spec from "./swagger.yaml";
export const testHandlers = await fromOpenApi(JSON.stringify(spec));- Define the worker:
import { SetupWorker, setupWorker } from "msw/browser";
import { browserHandlers } from "./browserHandlers";
import { testHandlers } from "./responseMocks/healthHandlers";
let wrk: SetupWorker = {} as SetupWorker;
wrk = setupWorker(...browserHandlers, ...testHandlers);- Run
vite - Get error
yarn run v1.22.22
$ VITE_ENABLE_MSW_MOCKS=true yarn start:bundler
$ ./scripts/verify_host_file.sh && vite
Re-optimizing dependencies because lockfile has changed
VITE v5.4.8 ready in 612 ms
➜ Network: https://local.app.komodor.local:3000/
➜ press h + enter to show help
Browserslist: caniuse-lite is outdated. Please run:
npx browserslist@latest --update-db
Why you should do it regularly:
https://github.com/browserslist/browserslist#browsers-data-updating
✘ [ERROR] Could not resolve "msw"
../../node_modules/@mswjs/source/lib/open-api/from-open-api.js:1:34:
1 │ import { HttpHandler, http } from 'msw';
╵ ~~~~~
You can mark the path "msw" as external to exclude it from the bundle, which will remove this
error and leave the unresolved path in the bundle.
/Users/dlvhdr/code/komodor/mono/node_modules/esbuild/lib/main.js:1472
let error = new Error(text);
^
Error: Build failed with 1 error:
../../node_modules/@mswjs/source/lib/open-api/from-open-api.js:1:34: ERROR: Could not resolve "msw"
at failureErrorWithLog (/Users/dlvhdr/code/komodor/mono/node_modules/esbuild/lib/main.js:1472:15)
at /Users/dlvhdr/code/komodor/mono/node_modules/esbuild/lib/main.js:945:25
at /Users/dlvhdr/code/komodor/mono/node_modules/esbuild/lib/main.js:1353:9
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
errors: [Getter/Setter],
warnings: [Getter/Setter]
}
Node.js v18.18.2
error Command failed with exit code 1.
Expected behavior
Initial assessment
- I'm not sure if the top-level await has anything to do with it
Screenshots
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
kettanaito commentedon Oct 21, 2024
Hi. Do you have
mswinstalled? What doesnpm ls mswprint?dlvhdr commentedon Oct 22, 2024
Yes, I have it installed.
I'm using yarn v1:
But npm also finds it:
$ npm ls msw mono@ /Users/dlvhdr/code/komodor/mono └─┬ web@0.1.0 -> ./services/web └── msw@2.0.3