Can't resolve 'canvas' in '(...)/node_modules/pdfjs-dist/build'
See original GitHub issueDescription
When building my Next JS application I get this error:
ModuleNotFoundError: Module not found: Error: Can't resolve 'canvas' in '(...)/node_modules/pdfjs-dist/build'
Steps to reproduce
- Create a Next JS application
- Install react-pdf
- Import react-pdf in some page
import { Document, Page, pdfjs } from "react-pdf/dist/umd/entry.webpack"
- Build (e.g.
yarn build
)
Expected behavior
Expected the application to build
Additional information
$ yarn build
yarn run v1.22.10
$ next build
(node:29765) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at (...)/node_modules/next/node_modules/postcss/package.json.
Update this package.json to use a subpath pattern like "./*".
(Use `node --trace-deprecation ...` to show where the warning was created)
Loaded env from (...)/.env.local
info - Using external babel configuration from (...)/.babelrc
info - Creating an optimized production build
Failed to compile.
ModuleNotFoundError: Module not found: Error: Can't resolve 'canvas' in '(...)/node_modules/pdfjs-dist/build'
> Build error occurred
Error: > Build failed because of webpack errors
at (...)/node_modules/next/dist/build/index.js:15:918
at async (...)/node_modules/next/dist/build/tracer.js:1:1441
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Environment
- React-PDF version: 5.3.0
- React version: 17.0.1
- Webpack version (if applicable): 4.44.2
Issue Analytics
- State:
- Created 2 years ago
- Comments:7
Top Results From Across the Web
Looking for help to make npm/pdfjs-dist work with Webpack ...
This issue seems to arise due to esModule option introduced in worker-loader@3.0.0 . The fix for this was merged in (pre-release) ...
Read more >Solved: Problem with pdfjs-dist on build - Alfresco Hub
We resolved using version specified in ADF application generator version 4.4.0. "pdfjs-dist": "2.5.207",. We started development using 4.3.0.
Read more >pdfjs-dist - npm
Our goal is to create a general-purpose, web standards-based platform for parsing and rendering PDFs. This is a pre-built version of the PDF.js...
Read more >How to Build a PDF Viewer with TypeScript & PDF.js | PDFTron
In this article, we show how to create a PDF viewing app using PDF.js and ... Navigate into the node_modules/@types/pdfjs-dist directory and add...
Read more >canvas.node is not a valid win32 application - You.com
Install Cairo like installation process asked to (using msys ) · Install fabric · Write any code with fabric import · Build application...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I managed to fix this issue with locking version of react pdf in package.json to
"react-pdf": "5.2.0",
previously it was"react-pdf": "^5.2.0",
with this character ^ and it was causing resolution of pdfjs-dist to version 2.6. After change it results in 2.5 version which is not causing this problem.Solution
Add this to
.next.config.js
: