ModuleNotFoundError:找不到模块:错误:无法解析“/home/pegasus/Documents/Final_Website/blog/node_modules/pdfjs-dist/build”中的“canvas”

Nob*_*sus 7 canvas pdf-reader reactjs gatsby react-pdf

当我安装react-pdf时,出现以下错误:

ModuleNotFoundError: Module not found: Error: Can't resolve 'canvas' in '/home/pegasus/Documents/Final_Website/blog/node_modules/pdfjs-dist/build'

我正在尝试在盖茨比网站上呈现 pdf。但为此我需要react-pdf并且它抛出了这个错误。

小智 1

要解决此特定错误,请先尝试安装 canvas 模块:

\n
npm install canvas\n
Run Code Online (Sandbox Code Playgroud)\n

如果您使用 Next.js 应用程序路由器,安装画布后可能会出现另一个错误:

\n
./node_modules/canvas/build/Release/canvas.node\nModule parse failed: Unexpected character \'\xef\xbf\xbd\' (1:2)\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders\n(Source code omitted for this binary file)\n
Run Code Online (Sandbox Code Playgroud)\n

要解决此错误,您需要安装“raw-loader”模块:

\n
npm install raw-loader --save-dev\n
Run Code Online (Sandbox Code Playgroud)\n

并将以下代码添加到您的next.config.js

\n
module.exports = {\n webpack: (config) => {\n   config.module.rules.push({\n     test: /\\.node/,\n     use: \'raw-loader\',\n   });\n\n   return config;\n },\n}\n
Run Code Online (Sandbox Code Playgroud)\n

阅读文档以获取更多信息:https ://www.npmjs.com/package/react-pdf

\n