#sapui5 #sap-business-application-studio
Вопрос:
Я хочу импортировать jspdf в свой проект business application studio без использования index.html с тех пор, как я прочитал это index.html не вызывается при открытии приложений с панели запуска fiori.
Я могу заставить часть jspdf работать, но как только я вызываю метод autotable, он выдает ошибку: «Неперехваченная ошибка типа: doc.autoTable не является функцией».
Путь с библиотеками jspdf:
манифест.json:
"resources": {
"css": [
{
"uri": "css/style.css"
}
],
"libs": [
{
"uri": "libs/jspdf.js"
},
{
"uri": "libs/jspdf.min.js"
},
{
"uri": "libs/jspdf.plugin.autotable.js"
},
{
"uri": "libs/jspdf.umd.min.js"
}
]
}
включено в мой контроллер вот так:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"../model/formatter",
"sap/ui/core/Fragment",
"../libs/jspdf",
"../libs/jspdf.plugin.autotable",
"../libs/jspdf_debug"
],
/**
* @param {typeof sap.ui.core.mvc.Controller} Controller
*/
function (Controller, formatter, Fragment, syncStyleClass,jspdf, jspdf_autotable, jspdf_debug) {
"use strict";
//jQuery.sap.require("libs/jspdf_debug");
//jQuery.sap.require("libs/jspdf.plugin.autotable");
Если я верну jquerys обратно в приложение, при запуске произойдет сбой с этой ошибкой:
«Ошибка модуля: не удалось загрузить ‘libs/jspdf_debug.js» от resources/libs/jspdf_debug.js»
Надеюсь, кто-нибудь сможет мне помочь и с нетерпением жду ваших предложений!
Ответ №1:
Если вы еще этого не сделали, перейдите на ui5-tooling. После этого вы можете включить все, что установлено через npm.
UI5-Инструментарий имеет очень неясную документацию и академическую обработку… но есть пример для lodash:
specVersion: "2.5"
type: application
metadata:
name: my.application
--- # Everything below this line could also be put into the ui5.yaml of a standalone extension module
specVersion: "2.5"
kind: extension
type: project-shim
metadata:
name: my.application.thirdparty
shims:
configurations:
lodash: # name as defined in package.json
specVersion: "2.5"
type: module # Use module type
metadata:
name: lodash
resources:
configuration:
paths:
/resources/my/application/thirdparty/: "" # map root directory of lodash module
В основном,
- установите jspdf также через npm:
npm i jspdf --save-dev
- проверьте jspdf в «node_modules` и найдите папку dist
- скорректировать прокладку проекта
- если вы не уверены в пути и т.д. Установите временно lodash, чтобы вы могли сравнить путь
Как только все будет готово, вы сможете получить доступ к файлам по URL-адресу. Если это работает, вы также можете загрузить их sap.ui.require
во время выполнения, и они являются частью вашей сборки.
Некоторые модули устанавливают их самостоятельно глобально, поэтому sap.ui.require
они вернутся неопределенными, а импортированный материал будет найден в разделе window.myGlobalUtilSTuff
.