Импорт jspdf в SAP Business Application Studio

#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 .