【问题标题】:Importing jspdf to SAP Business Application Studio将 jspdf 导入 SAP Business Application Studio
【发布时间】:2021-10-06 13:59:39
【问题描述】:

我想在不使用 index.html 的情况下将 jspdf 导入我的业务应用程序工作室项目,因为我读到从 fiori 启动板打开应用程序时不会调用 index.html。

我可以让 jspdf 部分正常工作,但是一旦我调用 autotable 方法,它就会引发错误: “未捕获的 TypeError:doc.autoTable 不是函数”

jspdf库的路径:

manifest.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");

如果我将 jquery 放回应用程序中,应用程序在启动时崩溃并出现此错误:

“ModuleError: 无法从资源/libs/jspdf_debug.js 加载‘libs/jspdf_debug.js’”

希望有人可以帮助我,期待您的建议!

【问题讨论】:

    标签: sapui5 sap-business-application-studio


    【解决方案1】:

    如果您还没有这样做,请迁移到 ui5-tooling。 之后,您可以包含通过 npm 安装的所有内容。

    UI5-Tooling 的文档和学术处理非常不清晰... 但是有一个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
    

    基本上,

    • 也通过 npm 安装 jspdf:npm i jspdf --save-dev
    • 检查 ```node_modules`` 中的 jspdf 并找到 dist 文件夹
    • 调整项目垫片
    • 如果您不确定路径等,请临时安装 lodash,以便您比较路径

    一切就绪后,您可以通过 URL 访问文件。如果这可行,您还可以在运行时使用 sap.ui.require 加载它们,它们是您构建的一部分。

    一些模块会在全局范围内自行安装它们,因此sap.ui.require 将返回 undefined 并且导入的内容位于window.myGlobalUtilSTuff 下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 2012-12-28
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      相关资源
      最近更新 更多