@ui5/builder/processors/bundlers/moduleBundler

Methods

(static) default(parameters) → {Promise.<Array.<module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundlerResult>>}

Description:
  • Legacy module bundler.
Source:
Parameters:
Name Type Description
parameters object Parameters
Properties
Name Type Description
resources Array.<@ui5/fs/Resource> Resources
options object Options
Properties
Name Type Attributes Description
moduleNameMapping object <optional>
Optional mapping of resource paths to module name in order to overwrite the default determination
bundleDefinition module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundleDefinition Module bundle definition
bundleOptions module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundleOptions <optional>
Module bundle options
Returns:
Promise resolving with module bundle resources
Type
Promise.<Array.<module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundlerResult>>

Type Definitions

ModuleBundleDefinition

Description:
  • Module bundle definition
Source:
Properties:
Name Type Attributes Default Description
name string The module bundle name
defaultFileTypes Array.<string> <optional>
[".js", ".control.xml", ".fragment.html", ".fragment.json", ".fragment.xml", ".view.html", ".view.json", ".view.xml"] List of default file types to be included in the bundle
sections Array.<module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundleDefinitionSection> List of module bundle definition sections.
Module bundle definition
Type:
  • object

ModuleBundleDefinitionSection

Description:
  • A ModuleBundleDefinitionSection specifies the embedding mode (either 'provided', 'raw', 'preload', 'require' or 'bundleInfo') and lists the resources that should be in- or excluded from the section.

    Module bundle section modes

    • provided: A section of mode 'provided' defines a set of modules that should not be included in the bundle file itself, but which should be assumed to be already loaded (or 'provided') by the environment into which the bundle module is loaded.
    • raw: A 'raw' section determines the set of modules that should be embedded, sorts them according to their dependencies and writes them out 1:1 without any transformation or wrapping (raw). Only JavaScript sources can be embedded in a raw section.
    • preload: A 'preload' section packages resources that should be stored in the preload cache in the client. They can embed any textual resource type (JavaScript, XML, JSON and .properties files) that the bundling supports. UI5 modules are wrapped into a 'sap.ui.predefine' call. Other JavaScript modules will be embedded into a 'jQuery.sap.registerPreload' call, or in a "sap.ui.require.preload" call when the ui5loader is available.
    • require: A 'require' section is transformed into a sequence of jQuery.sap.require calls. The list will be resolved like an include pattern list in any of the other sections and for each of the resolved modules, a jQuery.sap.require will be created. In case the ui5loader is available, 'sap.ui.requireSync' is used instead.
    • bundleInfo: A 'bundleInfo' section describes the content of another named bundle. This information is transformed into a ui5loader-"bundlesUI5" configuration. At runtime, if a module is known to be contained in a bundle, the loader will require that bundle before the module itself. This requires the ui5loader to be available at build time and UI5 version 1.74.0 or higher at runtime.

Source:
Properties:
Name Type Attributes Default Description
mode string The embedding mode. Either 'provided', 'raw', 'preload', 'require' or 'bundleInfo'
filters Array.<string> List of modules declared as glob patterns (resource name patterns) that should be in- or excluded. A pattern ending with a slash '/' will, similarly to the use of a single '*' or double '**' asterisk, denote an arbitrary number of characters or folder names. Excludes should be marked with a leading exclamation mark '!'. The order of filters is relevant; a later exclusion overrides an earlier inclusion, and vice versa.
resolve boolean <optional>
false Whether (transitive) dependencies of modules that match the given filters should be resolved and added to the module set
resolveConditional boolean <optional>
false Whether conditional dependencies of modules should be resolved and added to the module set for this section
renderer boolean <optional>
false Whether renderers for controls should be added to the module set
declareRawModules boolean <optional>
false Whether raw modules should be declared after jQuery.sap.global became available. With the usage of the ui5loader, this flag should be set to 'false'
sort boolean <optional>
true Whether the modules should be sorted by their dependencies
A ModuleBundleDefinitionSection specifies the embedding mode (either 'provided', 'raw', 'preload', 'require' or 'bundleInfo') and lists the resources that should be in- or excluded from the section.

Module bundle section modes

  • provided: A section of mode 'provided' defines a set of modules that should not be included in the bundle file itself, but which should be assumed to be already loaded (or 'provided') by the environment into which the bundle module is loaded.
  • raw: A 'raw' section determines the set of modules that should be embedded, sorts them according to their dependencies and writes them out 1:1 without any transformation or wrapping (raw). Only JavaScript sources can be embedded in a raw section.
  • preload: A 'preload' section packages resources that should be stored in the preload cache in the client. They can embed any textual resource type (JavaScript, XML, JSON and .properties files) that the bundling supports. UI5 modules are wrapped into a 'sap.ui.predefine' call. Other JavaScript modules will be embedded into a 'jQuery.sap.registerPreload' call, or in a "sap.ui.require.preload" call when the ui5loader is available.
  • require: A 'require' section is transformed into a sequence of jQuery.sap.require calls. The list will be resolved like an include pattern list in any of the other sections and for each of the resolved modules, a jQuery.sap.require will be created. In case the ui5loader is available, 'sap.ui.requireSync' is used instead.
  • bundleInfo: A 'bundleInfo' section describes the content of another named bundle. This information is transformed into a ui5loader-"bundlesUI5" configuration. At runtime, if a module is known to be contained in a bundle, the loader will require that bundle before the module itself. This requires the ui5loader to be available at build time and UI5 version 1.74.0 or higher at runtime.

Type:
  • object
Example

List of modules as glob patterns that should be in- or excluded

// Includes everything from "some/path/to/module/",
// but excludes the subfolder "some/path/to/module/to/be/excluded/"
const section = {
	"filters": [
		"some/path/to/module/",
		"!some/path/to/module/to/be/excluded/"
	]
};

ModuleBundleOptions

Description:
  • Module bundle options
Source:
Properties:
Name Type Attributes Default Description
optimize boolean <optional>
true Whether the module bundle gets minified
sourceMap boolean <optional>
true Whether to generate a source map file for the bundle
decorateBootstrapModule boolean <optional>
false If set to 'false', bootable bundles won't be decorated with an optimization marker
addTryCatchRestartWrapper boolean <optional>
false Whether to wrap bootable bundles with a try/catch to filter out "Restart" errors
usePredefineCalls boolean <optional>
false If set to 'true', sap.ui.predefine is used for UI5 modules
numberOfParts number <optional>
1 The number of parts the module bundle should be splitted
ignoreMissingModules boolean <optional>
false When searching for modules which are optional for further processing, do not throw in case they are missing
Module bundle options
Type:
  • object

ModuleBundlerResult

Description:
  • Result set
Source:
Properties:
Name Type Description
bundle @ui5/fs/Resource Bundle resource
sourceMap @ui5/fs/Resource Source Map
Result set
Type:
  • object