Настройка прокси для ui5-сервера - PullRequest
1 голос
/ 04 ноября 2019

Я создал проект с помощью инструмента ui5-cli . Я добавляю внешние библиотеки js в свой проект. ui5 serve команда запуска ui5-сервер и он отображает папку библиотеки ui5 как /resource. Мне нужно сопоставить папку resource/libs с другим местоположением в моем проекте.

Как настроить ui5-сервер параметр прокси для сопоставления / маршрутизации?

Мой файл package.json:

{
  "name": "openui5-sample-app",
  "version": "0.2.0",
  "description": " ",
  "private": true,
  "scripts": {
    "start": "ui5 serve",
    "lint": "eslint webapp",
    "karma": "karma start",
    "karma-ci": "rimraf coverage && karma start karma-ci.conf.js",
    "watch": "npm run karma",
    "test": "npm run lint && npm run karma-ci",
    "build": "ui5 build -a --clean-dest",
    "build-self-contained": "ui5 build self-contained -a --clean-dest",
    "serve-dist": "ws --compress -d dist"
  },
  "dependencies": {
    "@openui5/sap.m": "^1.70.0",
    "@openui5/sap.ui.core": "^1.70.0",
    "@openui5/themelib_sap_fiori_3": "^1.70.0",
    "js-cookie": "^2.2.1"
  },
  "devDependencies": {
    "@ui5/cli": "^1.9.0",
    "eslint": "^5.16.0",
    "karma": "^4.3.0",
    "karma-chrome-launcher": "^3.1.0",
    "karma-coverage": "^2.0.1",
    "karma-ui5": "^1.1.0",
    "local-web-server": "^3.0.7",
    "rimraf": "^3.0.0"
  }
}

Мой компонент. Файл js:

jQuery.sap.registerModulePath('libs.js-cookie', '../resources/libs/js.cookie-2.2.1.min');

sap.ui.define([
     ...,
     "libs/js-cookie"
], function(UIComponent, Device, models) {
  ...
});

Мой файл yaml:

specVersion: '1.0'
metadata:
  name: openui5-sample-app
type: application
resources:
  configuration:
    propertiesFileSourceEncoding: "UTF-8"

1 Ответ

0 голосов
/ 08 ноября 2019

Вы должны обновить свой cli до самой последней версии на тот момент или написать его "@ui5/cli": "^1.11.1". Я лично могу порекомендовать вам ncu , чтобы проверить regulare на наличие обновлений.

Для этого конфига требуется загрузка CDN в вашем index.html.

ui5-У инструмента есть свой собственный раздел зависимостей, добавьте туда свои пакеты

     {
      "name": "xyz",
      "version": "1.0.0",
      "description": "xyz",
      "dependencies": {
        "@sap/approuter": "6.5.1"
      },
      "devDependencies": {
        "@ui5/cli": "^1.11.1",
        "ui5-middleware-simpleproxy": "^0.1.3",
        "ui5-tooling-livereload": "^0.1.4",
        "js-cookie": "^2.2.1"
      },
      "sapui5-runtime": {
        "version": "1.66.1"
      },
      "scripts": {

      },
      "ui5": {
        "dependencies": [
          "ui5-tooling-livereload",
          "ui5-middleware-simpleproxy",
          "js-cookie"
        ]
      }
    }

Чтобы увидеть великолепную картину, следующую за всем yaml. Но вам нужны только вещи после "--- # Все"


    specVersion: '1.0'
    metadata:
      name: my.ui5.id
    type: application
    server:
      customMiddleware:
      - name: ui5-tooling-livereload
        afterMiddleware: compression
        configuration:
          debug: true
          ext: "xml,json,properties"
          port: 35729
          path:   
            - "webapp"
      - name: ui5-middleware-simpleproxy
        mountPath: /my/local/backend/service/odata/v2
        afterMiddleware: compression
        configuration:
          baseUri: "http://localhost:8081/my/local/backend/service/odata/v2"
    --- # Everything below this line could also be put into the ui5.yaml of a standalone extension module
    specVersion: "1.0"
    kind: extension
    type: project-shim
    metadata:
      name: my.application.thirdparty
    shims:
      configurations:
        js-cookie: # name as defined in package.json
          specVersion: "1.0"
          type: module # Use module type
          metadata:
            name: js-cookie
          resources:
            configuration:
              paths:
                /resource/libs: "/src/" #here is mapped: node_modules/js-cookie/src

...