Manifest.json

Diese Datei ist die Hauptdatei eines jeden Framework Projektes beziehungsweise Paketes. Hier sind alle Komponenten und deren Abhängigkeiten dokumentiert.

Komponenten

Mögliche Komponenten sind:

Toolbar Kategorie

Weiterhin können Sie hier über den Eintrag toolboxCategory festlegen, wo ein Control in der VisualStudio Toolbar erscheint.

JavaScript Module Mapping

Werden innerhalb dieses Paketes JavaScript Module (ES Module) genutzt, so kann über den Eintrag esmoduleImports ein Importziel definiert werden.

"esmoduleImports": [
    {
        "imports": {
            "marked": "Lib/marked.esm.js"
        }
    }
]

Solch eine Definition kann auch für einen Unterordner unterschiedlich festgelegt werden.

"esmoduleImports": [
    {
        "imports": {
            "marked": "Lib/marked.esm.js"
        }
    },
    {
        "moduleScope": "oldcontrolFolder",
        "imports": {
            "marked": "LibOld/marked.esm.js"
        }
    }
]

Beispiel

{
   "apiVersion": 1,
   "modules": [
      {
         "type": "Package",
         "nugetId": "Beckhoff.TwinCAT.HMI.Framework"
      },
      {
         "type": "Function",
         "basePath": "myFunction/",
         "descriptionFile": "myFunction.function.json"
      },
      {
         "type": "Resource",
         "path": "customHelpers.js"
      },
      {
         "type": "Control",
         "basePath": "Control1/",
         "descriptionFile": "Description.json",
         "toolboxCategory": "MyIdentifier:200"
      },
      {
         "type": "Resource",
         "path": "PackageStyle.css"
      },
      {
         "type": "Resource",
         "path": "PackageBaseThemeStyle.css",
         "theme": "Base",
      },
      {
         "type": "Control",
         "basePath": "Control2/",
         "descriptionFile": "Description.json",
         "toolboxCategory": "MyIdentifier:201"
      }
   ],
   "provideMetadata": {
      "toolbox": {
         "MyIdentifier": {
            "200": "FrameworkPrj1",
            "201": {
               "default": "Bühnentechnik",
               "de-DE": "Bühnentechnik",
               "en-US": "Stagecraft",
               "it-IT": "Scenotecnica",
               "nl-NL": "Theatertechniek"
            }
         }
      }
   },
   "$schema": ".hmiframework/Schema/Manifest.Schema.json"
}