@@ -172,6 +172,7 @@ If `moduleLocalName` is not specified, it exposes the entire module to the globa
172172** src/index.js**
173173
174174``` js
175+ import $ from " jquery" ;
175176import _ from " underscore" ;
176177```
177178
@@ -186,7 +187,19 @@ module.exports = {
186187 loader: " expose-loader" ,
187188 options: {
188189 // For `underscore` library, it can be `_.map map` or `_.map|map`
189- exposes: " jquery" ,
190+ exposes: " $" ,
191+ // To access please use `window.$` or `globalThis.$`
192+ },
193+ },
194+ {
195+ // test: require.resolve("jquery"),
196+ test: / node_modules[/\\ ] underscore[/\\ ] modules[/\\ ] index-all\. js$ / ,
197+ loader: " expose-loader" ,
198+ type: " javascript/auto" ,
199+ options: {
200+ // For `underscore` library, it can be `_.map map` or `_.map|map`
201+ exposes: " _" ,
202+ // To access please use `window._` or `globalThis._`
190203 },
191204 },
192205 ],
@@ -223,8 +236,9 @@ module.exports = {
223236 module: {
224237 rules: [
225238 {
226- test: require . resolve ( " underscore" ) ,
239+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
227240 loader: " expose-loader" ,
241+ type: " javascript/auto" ,
228242 options: {
229243 exposes: {
230244 // Can be `['_', 'filter']`
@@ -264,8 +278,9 @@ module.exports = {
264278 module: {
265279 rules: [
266280 {
267- test: require . resolve ( " underscore" ) ,
281+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
268282 loader: " expose-loader" ,
283+ type: " javascript/auto" ,
269284 options: {
270285 exposes: {
271286 globalName: " _.filter" ,
@@ -288,7 +303,7 @@ type override = boolean;
288303
289304Default: ` false `
290305
291- By default loader does not override the existing value in the global object, because it is unsafe.
306+ By default, loader does not override the existing value in the global object, because it is unsafe.
292307In ` development ` mode, we throw an error if the value already present in the global object.
293308But you can configure loader to override the existing value in the global object using this option.
294309
@@ -336,8 +351,9 @@ module.exports = {
336351 module: {
337352 rules: [
338353 {
339- test: require . resolve ( " underscore" ) ,
354+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
340355 loader: " expose-loader" ,
356+ type: " javascript/auto" ,
341357 options: {
342358 exposes: [
343359 " _.map map" ,
@@ -382,8 +398,9 @@ module.exports = {
382398 module: {
383399 rules: [
384400 {
385- test: require . resolve ( " underscore" ) ,
401+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
386402 loader: " expose-loader" ,
403+ type: " javascript/auto" ,
387404 options: {
388405 exposes: [
389406 {
@@ -398,6 +415,49 @@ module.exports = {
398415};
399416```
400417
418+ ## Examples
419+
420+ ### Expose a local module
421+
422+ ** index.js**
423+
424+ ``` js
425+ import { method1 } from " ./my-module.js" ;
426+ ```
427+
428+ ** my-module.js**
429+
430+ ``` js
431+ function method1 () {
432+ console .log (" method1" );
433+ }
434+
435+ function method2 () {
436+ console .log (" method1" );
437+ }
438+
439+ export { method1 , method2 };
440+ ```
441+
442+ ** webpack.config.js**
443+
444+ ``` js
445+ module .exports = {
446+ module: {
447+ rules: [
448+ {
449+ test: / my-module\. js$ / ,
450+ loader: " expose-loader" ,
451+ options: {
452+ exposes: " mod" ,
453+ // // To access please use `window.mod` or `globalThis.mod`
454+ },
455+ },
456+ ],
457+ },
458+ };
459+ ```
460+
401461## Contributing
402462
403463Please take a moment to read our contributing guidelines if you haven't yet done so.
0 commit comments