Как сделать сборку с помощью preact-cli + jspdf
Я пытаюсь сохранить файл PDF с помощью jspdf на шаблоне 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
)
Вот моя ошибка:
ОШИБКА Выполнение шаблона не выполнено: TypeError: Невозможно прочитать свойство 'bind' неопределенного × ОШИБКА TypeError: Невозможно прочитать свойство 'bind' неопределенного
ssr-bundle.js:5474 Object.6PsSXXXXXXXXXXXXXXXXXXXXXXXX/build/ssr-build/ssr-bundle.js:5474:39
ssr-bundle.js: 27 webpack_requireXXXXXXXXXXXXXXXXXXXXXXXX/ANPP/build/ssr-build/ssr-bundle.js:27:30
ssr-bundle.js:2661 Object./jycXXXXXXXXXXXXXXXXXXXXXXXX/ANPP/build/ssr-build/ssr-bundle.js:2661:16
ssr-bundle.js: 27 webpack_requireXXXXXXXXXXXXXXXXXXXXXXXX/ANPP/build/ssr-build/ssr-bundle.js:27:30
ssr-bundle.js:92XXXXXXXXXXXXXXXXXXXXXXXX/build/ssr-build/ssr-bundle.js:92:18
ssr-bundle.js:95 Объект. XXXXXXXXXXXXXXXXXXXXXXXX/сборка/ssr-сборка/ssr-bundle.js:95:10
loader.js:1200 Module._compileinternal/modules/cjs/loader.js:1200:30
loader.js:1220 Object.Module._extensions..js внутренний/модули/cjs/loader.js:1220:10
loader.js:1049 Module.load внутренний/модули/cjs/loader.js:1049:32
loader.js:937 Function.Module._load внутренний/модули/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 prerender[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.config.js
module.exports = {
// ...
externals: {
// only define the dependencies you are NOT using as externals!
canvg: "canvg",
html2canvas: "html2canvas",
dompurify: "dompurify"
}
};
Preact-CLI использует пользовательскую конфигурацию веб-пакета. Вы должны создать файл с именем preact.config.js, чтобы внести изменения в веб-пакет, но теперь у меня есть идея, как реализовать это в файле preact, и я не знаю, сработает ли это.
Любая добрая душа, чтобы помочь мне?