我正在尝试将使用pdfmake 0.1.64的Lambda js代码升级到使用pdfmake 0.2.5的CDK 类型记录代码。
我收到错误:"ENOENT:没有这样的文件或目录,打开'/var/task/data.trie'“
当这一行代码包含在Lambda函数中时,将产生错误:
import PdfPrinter = require('pdfmake');搜索此错误意味着这是pdfkit错误。我的理解是pdfmake是基于pdfkit的。
Docs:“在服务器端使用pdfmake”https://pdfmake.github.io/docs/0.1/fonts/standard-14-fonts/
附加Lambda打字本代码(供参考):
import PdfPrinter = require('pdfmake');
const fonts = {
Courier: {
normal: 'Courier',
bold: 'Courier-Bold',
italics: 'Courier-Oblique',
bolditalics: 'Courier-BoldOblique'
},
Helvetica: {
normal: 'Helvetica',
bold: 'Helvetica-Bold',
italics: 'Helvetica-Oblique',
bolditalics: 'Helvetica-BoldOblique'
},
Times: {
normal: 'Times-Roman',
bold: 'Times-Bold',
italics: 'Times-Italic',
bolditalics: 'Times-BoldItalic'
},
Symbol: {
normal: 'Symbol'
},
ZapfDingbats: {
normal: 'ZapfDingbats'
}
};
const docDefinition = {
content: [
'First paragraph'
],
defaultStyle: {
font: 'Helvetica'
}
};
const printer = new PdfPrinter(fonts);
const doc = printer.createPdfKitDocument(docDefinition);
doc.end();发布于 2022-06-27 20:28:18
以下CDK设置修复了此错误。
new lambdaNJS.NodejsFunction(this, 'MyLambdaFunction', {
...
bundling: {
...
nodeModules: ['pdfmake'], // List of modules that should NOT be bundled but instead included in the node_modules folder.
}
});在Lambda中(强制类型记录忽略类型错误)。还不清楚如何让类型发挥作用。package.json包含@type/pdfmake包。
// @ts-ignore
const doc = printer.createPdfKitDocument(definition, options);https://stackoverflow.com/questions/72775287
复制相似问题