dojo-webpack-loader icon indicating copy to clipboard operation
dojo-webpack-loader copied to clipboard

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

Open lumen0988 opened this issue 9 years ago • 0 comments

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 : '')}`;

lumen0988 avatar Nov 03 '16 08:11 lumen0988