Skip to content

Feature request: pass layer module id and path to builder write method #988

@rphilipp64

Description

@rphilipp64

When writing a custom AMD plugin builder, it can be valuable to know the layer module id and path of the layer currently being flattened. Currently these fields are passed to onLayerEnd, but not to write.

Proposal:
Add this information to 'writeApi' (3rd argument to builder.write), for example as layerName and layerPath properties. Alternatively a 4th argument could be added.
(This is basically the information that is on module.onCompleteData, without the includes Array).

Reason:
Any custom plugin that combines multiple files into a single file (probably as a sibling of the layer js file), needs to add "no-op" mappings for the source files it optimized. These mappings need to be added during write. It is currently impossible to do any logic that refers to the combined module the plugin builder will generate in onLayerEnd.

My specific use case is a custom CSS loader that will combine CSS files into a single my/layer/module.css when building the layer my/layer/module. It would be very useful if the no-op define inserted during the build could return the module id of the css file that the file got optimized into.
For example, it may want to insert this on write:
define( 'css!my/module/button.css', [], function(){ return "my/layer/module.css"; } );

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions