Comments (5)
I saw Kent run into this on stream too, but possibly for different reasons. The reason I ran into it was that I assigned process.env.NODE_ENV
to another variable, which doesn't work apparently (I vaguely remember knowing that once upon a time, but don't recall the reasoning behind it).
ππ» msw not in production bundle:
if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development') {
const { worker } = require('./mocks')
worker.start()
}
ππ» msw in production bundle:
const isDevOrTest = process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development'
if (isDevOrTest) {
const { worker } = require('./mocks')
worker.start()
}
(edit: note the example works just fine unmodified, so that was an invalid report)
from examples.
if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development') {
const { worker } = require('./mocks')
worker.start()
}
This allows the bundler to eliminate the dead code paths, since it will be transformed to:
if (false || false) { // Will never be true
const { worker } = require('./mocks')
worker.start()
}
If the if
statement can never be true, it will be removed from the bundle. By assigning the ENV variable to another variable first, it would require runtime analysis of the code to determine if it can be eliminated.
const isDevOrTest = false ||Β false
if (isDevOrTest) { // Won't know the value `isDevOrTest` without running the code
const { worker } = require('./mocks')
worker.start()
}
from examples.
@thebuilder There we go, that sounds familiar. Thanks for the explanation!
from examples.
We need to add an automated test that asserts the msw
is not bundled when built a full example like this.
Anybody interested in this can pick this up, otherwise I will push something similar in some time. Thanks everybody for discussion on this!
from examples.
Hey, any update on this? if it's not, can I pick this up?
from examples.
Related Issues (20)
- Remix + MSW + Playwright HOT 1
- Add relative request URL examples to "jest-jsdom"
- Set multiple "msw.workerDirectory" in root-level package.json
- React Native example app is missing
- Asserting request payload (waitForRequest) in v2 documentation HOT 4
- thrown: "API not configured" error HOT 2
- Vite + React but not Create-React-App + React HOT 2
- use msw-storybook-addon in storybook example
- There is no condition inclusion in main.ts HOT 2
- NetworkError at XMLHttpRequest.send HOT 2
- Jest tests all return ' No element indexed' error HOT 1
- MSW with GrapqhQl fragments
- mockup msw doesn't work HOT 3
- Not intercepting Apollo GQL requests at all HOT 6
- msw can't work in localhost or 127.0.0.1 HOT 1
- Run tests in supported version of Node.js
- Add example which uses Web Test Runner (@web/test-runner)
- Broken link from docs HOT 1
- Question: Is it possible to intercept ALL requests? HOT 3
- Separate with-jest and with-jest-and-jsdom examples HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from examples.