Инструментарий пакета ExtJS / общие ресурсы

У меня есть пакет ExtJS со следующей структурой:

PackageA/
  classic/
    resrouces/
      file.json
      classic_resource.json
  resources/
    file.json
    resource.json

Когда я создаю приложение в производственном режиме, требующем packageA, в каталоге сборки я вижу следующее:

./build/production/MyApp/classic/resources/PackageA/file.json
./build/production/MyApp/classic/resources/PackageA/classic_resource.json
./build/production/MyApp/classic/resources/PackageA/resource.json

Похоже, что и общие ресурсы пакета, и инструментарий (классический) копируются в один и тот же каталог (./MyApp/classic/resources/PackageA/), и если такой же файл уже существует, он будет просто перезаписан (file.json ).

Однако в моем случае classic/resources/file.json и resources/file.json имеют разное содержимое, и мне нужно сохранить их оба в сборке.

Как я могу этого добиться?

[РЕДАКТИРОВАТЬ]

app.json

    "output": {
        "base": "${workspace.build.dir}/${build.environment}/${app.name}",
        "page": "index.html",
        "manifest": "${build.id}.json",
        "js": "${build.id}/app.js",
        "appCache": {
            "enable": false
        },
        "resources": {
            "path": "${build.id}/resources",
            "shared": "resources"
        },

        "framework": {
            "path": "${build.id}/framework.js",
            "enable": true
        }
    },

    "resources": [
        {
            "path": "resources",
            "output": "shared"
        },
        {
            "path": "${toolkit.name}/resources"
        },
        {
            "path": "${build.id}/resources"
        }
    ],

пакет.json

"output": "${package.dir}/build",

"resource": {
    "paths": [
        "${package.dir}/resources",
        "${package.dir}/${toolkit.name}/resources"
    ]
},

person dev4.life    schedule 11.03.2020    source источник
comment
какие типы файлов вы используете в обоих случаях? Я имею в виду, что это компонент в обоих случаях или это json? если это Json, почему он содержится в классическом каталоге, который должен содержать компоненты?   -  person pvlt    schedule 12.03.2020
comment
Это всего лишь тестовые файлы, поэтому посмотрите, что и где выводится после сборки. Содержимое файлов — это просто текстовая строка, указывающая путь к файлам. Кстати, похоже, что в каталоге сборки classic/resources/file.json перезаписывает resources/file.json. Все, что я ищу, — это разделить ресурсы пакета так же, как ресурсы приложения разделены.   -  person dev4.life    schedule 12.03.2020


Ответы (1)


Это происходит потому, что вы создаете каталог resources в каталоге инструментария, которого там быть не должно.

Readme.md во вновь созданном пакете

Этот классический каталог может включать любой (если не все) из следующих каталогов:

  • overrides: любые классы в этом каталоге будут автоматически необходимы и включены в классическую сборку. Если какой-либо из этих классов определяет переопределение Ext JS (используя Ext.define со свойством «переопределить»), это переопределение фактически будет включено в сборку только в том случае, если целевой класс, указанный в свойстве «переопределения», также включен.

  • sass: все правила классического стиля должны находиться в этом пакете, следуя той же структуре, что и каталог в корне пакета (дополнительную информацию см. в package.json).

  • src: специфические для классики классы этого пакета должны находиться в этом каталоге.

Если вам нужны ресурсы, разделенные набором инструментов, делайте это в корневом каталоге пакета resources.

person pvlt    schedule 12.03.2020