jspdf - 如何使用 preact-cli + jspdf 进行构建
问题描述
我正在尝试将带有jspdf的 pdf 文件保存在preact -cli样板文件中。我正常开始我的项目:
npx preact-cli create <template-name> <app-name>
之后npm install --save jspdf
,我使用此代码保存文件(捆绑到一个按钮):
import { jsPDF } from "jspdf";
const geraPdf = (props) => {
const doc = new jsPDF();
doc.text("Hello world! " + props, 10, 10);
doc.save("a4.pdf");
}
export default geraPdf
当我在开发服务器(npm run dev
)上运行它时,它工作正常。但我无法将其构建到生产环境中(npm run build
)
这是我的错误:
错误模板执行失败:类型错误:无法读取未定义的属性“绑定”×错误类型错误:无法读取未定义的属性“绑定”
ssr-bundle.js:5474 Object.6PsS XXXXXXXXXXXXXXXXXXXXXXXX/build/ssr-build/ssr-bundle.js:5474:39
ssr-bundle.js:27 webpack_require XXXXXXXXXXXXXXXXXXXXXXXX/ANPP/build/ssr-build/ssr-bundle.js:27:30
ssr-bundle.js:2661 Object./jyc XXXXXXXXXXXXXXXXXXXXXXXX/ANPP/build/ssr-build/ssr-bundle.js:2661:16
ssr-bundle.js:27 webpack_require XXXXXXXXXXXXXXXXXXXXXXXX/ANPP/build/ssr-build/ssr-bundle.js:27:30
ssr-bundle.js:92 XXXXXXXXXXXXXXXXXXXXXXXX/build/ssr-build/ssr-bundle.js:92:18
ssr-bundle.js:95 对象。XXXXXXXXXXXXXXXXXXXXXXXX/build/ssr-build/ssr-bundle.js:95:10
loader.js:1200 Module._compile internal/modules/cjs/loader.js:1200:30
loader.js:1220 Object.Module._extensions..js 内部/modules/cjs/loader.js:1220:10
loader.js:1049 Module.load 内部/modules/cjs/loader.js:1049:32
loader.js:937 Function.Module._load internal/modules/cjs/loader.js:937:14
loader.js:1089 Module.require 内部/模块/cjs/loader.js:1089:19
helpers.js:73 需要内部/模块/cjs/helpers.js:73:18
prerender.js:32 预渲染 [XXXX]/[preact-cli]/lib/lib/webpack/prerender.js:32:11
render-html-plugin.js:37 Object.ssr [XXXX]/[preact-cli]/lib/lib/webpack/render-html-plugin.js:37:55
template.html:110 t41+.module.exports [XXXX]/[preact-cli]/lib/resources/template.html:110:37
index.js:264 [XXXX]/[html-webpack-plugin]/index.js:264:16
查看 JSPDF,他们建议使用自定义 webpack 配置:
// webpack.config.js
module.exports = {
// ...
externals: {
// only define the dependencies you are NOT using as externals!
canvg: "canvg",
html2canvas: "html2canvas",
dompurify: "dompurify"
}
};
Preact-CLI 使用自定义的 webpack 配置。您应该创建一个名为 preact.config.js 的文件来对 webpack 进行更改,但我现在知道如何在 preact 文件上实现它,而且我不知道它是否会起作用。
有好心人帮帮我吗?
解决方案
推荐阅读
- vim - 我在链接 brew 的 vim 版本时遇到问题
- c# - 从 html 按钮调用 C# 函数
- netlogo - Netlogo 模拟如何添加加油站?
- int - 循环内的 Nunjucks,将属性转换为 int 并按 int 排序?
- php - PayPal Checkout Button 间歇性问题未发布到 PayPal
- c# - 如果字段 2 为空,C# 使用字段 1 的值
- angular - 尝试读取 ajax 数据时出现“无法读取属性...... null”(但它仍然有效)
- javascript - 我想编辑 wordpress 中的每一页。有可能吗?
- python - 关于 scipy.interpolate.interp1d 的问题
- python - 在 matplolit 上为所有行添加图例