-
-
Notifications
You must be signed in to change notification settings - Fork 893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uncaught ReferenceError: process is not defined #339
Comments
It turns out that The bug here is really with unified/vfile, so I've also filed it there: but note that this issue renders |
I have a similar issue. Requiring unified/vfile is a bit tricky here, as they both use node.js functions so things like |
Having the same results :( |
The solution is to set this in your webpack config: webpackConfig.node.process = true; |
webpack v5,same thing happend. |
Workaround: window.process = { cwd: () => '' }; |
@flybayer solution doesn't work for me @Falci where to put this code?
but it doesn't work for me P.S. downgraded to version 2.5.1. This version works for me without any additional tweaks in webpack config |
@greybax I'm using like this: import React from 'react';
import ReactMarkdown from 'react-markdown/with-html';
window.process = { cwd: () => '' };
const MyComponent = ({data}) => (
<LayoutWrapper>
<ReactMarkdown source={data} escapeHtml={false} />
</LayoutWrapper>
) |
A temporary solution for me: vfile/vfile#38 (comment) |
This is in vfile, not in react-markdown itself. |
Resolves issues with @availity/spaces compatibility with webpack 5. Spaces depends on react-markdown, which depends on vfile, which needs process.cwd() at runtime. remarkjs/react-markdown#339 (comment)
|
if you use vite, add variable in vite.config.js to fix it
|
so when users install it will pull react-markdown from npm instead of using bundled dependency, which may fail if they have not polyfilled process See remarkjs/react-markdown#339 When pulling from npm, the browser flag is respected and such a problem will not occur
Basically: - Replace web pack setup with vite and upgrade various dependencies and cull unnecessary ones. - Also remove TSLint. Will replace with typescript-eslint rules eventually. - Got rid of the hacky landing page static generation. Various road bumps along the way: - https://javascript.plainenglish.io/how-to-set-up-path-resolving-in-vite-ad284e0d9eae - fix sass imports vitejs/vite#5764 (comment) - Then needed to rewrite the alias for typescript again to match the types - Replace `process`. With the `import.meta.env` thing - https://stackoverflow.com/questions/64677212/how-to-configure-proxy-in-vite - Fix imports for static files from `requires()` - Had to fix proxying for `/avatar` and `/api` in dev - Ran into remarkjs/react-markdown#339 (comment) - Upgrade markdown react to fix - Migrate from `react-helmet` to fix some deprecation warnings - Vite has a different jsx config, so no need to import React - microsoft/TypeScript#41882 - Vitest issue: - https://github.com/vitest-dev/vitest/blob/57c2367196b3fd978a04fa38ebdac7a5b6ef9b16/packages/vite-node/src/client.ts#L178-L179 - Couldn’t import react-dnd, upgraded - react-dnd/react-dnd#3368 - `import { isUndefined } from "util"` didn’t work - Favicon via https://github.com/darkobits/vite-plugin-favicons to replace web pack equivalent - Issue with React router browser history in vitest, it exploded until jsdom was setup - Question: https://stackoverflow.com/questions/71703933/what-is-the-difference-between-vite-and-vite-preview - Vitest vscode integration broken :/ - vitest-dev/vscode#44 - Tried happy-dom but it doesn’t work, lots of issues, supposed to be faster - Took a while to get MSW in a good place, had to write some stuff so missing endpoint mocks fail the test - I think there's room for improvement here in terms of developer experience - Test with react testing library and API calls - https://www.npmjs.com/package/nock - Doesn’t fail test on unknown mock - https://stackoverflow.com/questions/69430232/jest-nock-how-to-fail-a-test-if-a-non-mocked-request-is-made - MSW - Doesn’t fail test on unknown mock - mswjs/msw#946 - Relay’s mockEnvironment - couldn't easily find thorough examples - Apollo mock provider - Doesn’t fail test on unknown mock - Added a visualize plugin similar to a web pack analyzer thing, but it’s slightly off with the numbers it gives for sizes: - btd/rollup-plugin-visualizer#96 - TODO: - ESLINT rules, replace what tslint provided, eslint-cake anyone? - https://typescript-eslint.io/rules/no-floating-promises/ - And more!!! - Replace lodash with lodash-es - Or maybe: https://github.com/onebay/vite-plugin-imp - Although lodash-es seems cleaner - SSR for landing page?
I recently updated my app to
4.2.2
(from an old,2.x
version) and am seeing an NPE onprocess
when attempting to render a<ReactMarkdown>
.It appears that ReactMarkdown calls
unified.parse()
, which in turn instantiates aVFile
, which accessesprocess
, butprocess
is not available in a browser.It is easy enough to reproduce (for me) that I'm surprised others haven't reported it, so I'm guessing there's something unique in my setup that is triggering this. Still debugging, but am I correct to assume that this codepath shouldn't be running in the browser?
Will add more information as I dig it up.
The text was updated successfully, but these errors were encountered: