Skip to content

module dependency conflicts with NodeStuffPlugin: module.id becomes module.i #9

@lumen0988

Description

@lumen0988

I had a problem with module dependecy in some files which will be processed by the webpack NodeStuffPlugin.

Situation is as follows:

The dojo-webpack-loader will prepend your module body with module={id:normalizedModuleName} if you have module as AMD dependency. If you use module.id in your code this will be replaced by the NodeStuffPlugin with module.i whilst module={id:normalizedModuleName} doesn't get replaced. This leads to several undefined errors on runtime.

Solution

A solution for this is to change the prepend code to module={}; module.id = normalizedModuleName; which can be achieved by replacing line 169 in index.js with
module.inject.prepend += `${dep.name}={}; ${dep.name}.id=${JSON.stringify(module.normalizedName ? module.normalizedName : '')}`;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions