Skip to content
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

Config worker not work when using Vite + React.lazy + react-pdf #1843

Open
4 tasks done
nmaddp1995 opened this issue Jul 15, 2024 · 3 comments
Open
4 tasks done

Config worker not work when using Vite + React.lazy + react-pdf #1843

nmaddp1995 opened this issue Jul 15, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@nmaddp1995
Copy link

nmaddp1995 commented Jul 15, 2024

Before you start - checklist

  • I followed instructions in documentation written for my React-PDF version
  • I have checked if this bug is not already reported
  • I have checked if an issue is not listed in Known issues
  • If I have a problem with PDF rendering, I checked if my PDF renders properly in PDF.js demo

Description

I face the problem that shows Setting fake worker failed when using Vite + React.lazy (for react-pdf component) + run build mode
image

This issue only happen when run in npm run build mode, not happen when run in npm run dev mode
Previously I used Webpack and this issue did not happen. It just happen when I migrate to vite

Steps to reproduce

https://github.com/nmaddp1995/react-pdf-vite-lazy-issue
Step1: Config worker in main file
Step2: Import component ReactPDF with Lazy:
image

image

Run this repo in production mode (npm run build)
View the app by npm run preview
Compare with run the app by npm run dev build

Production build:
image

Dev run:
image

Expected behavior

It should work the same with npm run dev and npm run build mode

Actual behavior

Production build:
image

Dev run:
image

Additional information

No response

Environment

  • Browser (if applicable): Chrome
  • React-PDF version:^9.1.0
  • React version: ^18.3.1
  • Bundler name and version (if applicable):
@nmaddp1995 nmaddp1995 added the bug Something isn't working label Jul 15, 2024
@lotfiGipsyKing

This comment was marked as outdated.

@lotfiGipsyKing
Copy link

If you are using a nginx in production, the problem came probably from your nginx config, because is not serving the .mjs files.

The solution is to update your nginx config to serve them as a javascript files, to do so, this an example:

http {
	# Includes mapping of file name extensions to MIME types of responses
	# and defines the default type.
	include /etc/nginx/mime.types;
	# maps the js and mjs file extensions to the application/javascript MIME type.
	types {
    	application/javascript js mjs;
	}
	default_type application/octet-stream;
}

@ernst77
Copy link

ernst77 commented Aug 6, 2024

If you are using a nginx in production, the problem came probably from your nginx config, because is not serving the .mjs files.

The solution is to update your nginx config to serve them as a javascript files, to do so, this an example:

http {
	# Includes mapping of file name extensions to MIME types of responses
	# and defines the default type.
	include /etc/nginx/mime.types;
	# maps the js and mjs file extensions to the application/javascript MIME type.
	types {
    	application/javascript js mjs;
	}
	default_type application/octet-stream;
}

Thank you, this helped, had to add mjs to all nginx proxies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants