我试图在Vercel函数中使用节点运行时的pdfjs-dist包来获取和解析PDF文件。
代码(TypeScript):
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执行和部署版本之间的差异吗?
16.x
发布于 2022-11-20 09:12:30
我找到了解决办法:
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";`))https://stackoverflow.com/questions/74282002
复制相似问题