0

我有一个具有以下结构的 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 具有不同的内容,我需要将它们都保留在构建中。

我怎样才能做到这一点?

[编辑]

应用程序.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"
    ]
},
4

1 回答 1

0

它的发生是因为您resources在工具包的目录上创建了不应该存在的目录。

新生成的包中的Readme.md

这个特定于经典的目录可以包括以下任何(如果不是全部)目录:

  • 覆盖:此目录中的任何类都将被自动要求并包含在经典构建中。如果这些类中的任何一个定义了 Ext JS 覆盖(使用带有“覆盖”属性的 Ext.define),则实际上只有在“覆盖”属性中指定的目标类也包括在内时,该覆盖才会包含在构建中。

  • sass:任何特定于经典的样式规则都应驻留在此包中,遵循与包根目录相同的结构(有关更多信息,请参阅 package.json)。

  • src:这个包的经典特定类应该驻留在这个目录中。

如果您需要由工具包分隔的资源,请在包的根resources目录中执行。

于 2020-03-12T16:23:19.207 回答