[英]Using pdfjs-dist on vercel (serverless function)
我正在尝试在 Vercel Serverless Function 内的节点运行时使用pdfjs-dist
package 来获取和解析 PDF 文件。
代码(打字稿):
import * as pdfjs from "pdfjs-dist/legacy/build/pdf";
...
const document = await pdfjs.getDocument(url).promise;
...
在本地,当运行vercel dev
时一切正常。 但是在部署之后,当访问远程端点时,出现以下错误:
Error: Setting up fake worker failed: \"Cannot find module './pdf.worker.js'
知道是什么导致了本地 Vercel 执行和部署版本之间的这种差异吗?
我找到了解决方案:
1:编译完成后,需要手动更改这行代码。 Vercel支持在package.json中指定自定义编译步骤:
"scripts": {
"now-build": "node build.js"
}
2:使用build.js文件完成上面的替换:
const fs = require('fs');
const dir = 'node_modules/pdfjs-dist/es5/build/pdf.js';
const content = fs.readFileSync(dir, { encoding: 'utf-8' });
fs.writeFileSync(dir, content.replace('"./pdf.worker.js";', `__dirname + "/pdf.worker.js";`))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.