@@ -172,6 +172,7 @@ If `moduleLocalName` is not specified, it exposes the entire module to the globa
172
172
** src/index.js**
173
173
174
174
``` js
175
+ import $ from " jquery" ;
175
176
import _ from " underscore" ;
176
177
```
177
178
@@ -186,7 +187,19 @@ module.exports = {
186
187
loader: " expose-loader" ,
187
188
options: {
188
189
// 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._`
190
203
},
191
204
},
192
205
],
@@ -223,8 +236,9 @@ module.exports = {
223
236
module: {
224
237
rules: [
225
238
{
226
- test: require . resolve ( " underscore" ) ,
239
+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
227
240
loader: " expose-loader" ,
241
+ type: " javascript/auto" ,
228
242
options: {
229
243
exposes: {
230
244
// Can be `['_', 'filter']`
@@ -264,8 +278,9 @@ module.exports = {
264
278
module: {
265
279
rules: [
266
280
{
267
- test: require . resolve ( " underscore" ) ,
281
+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
268
282
loader: " expose-loader" ,
283
+ type: " javascript/auto" ,
269
284
options: {
270
285
exposes: {
271
286
globalName: " _.filter" ,
@@ -288,7 +303,7 @@ type override = boolean;
288
303
289
304
Default: ` false `
290
305
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.
292
307
In ` development ` mode, we throw an error if the value already present in the global object.
293
308
But you can configure loader to override the existing value in the global object using this option.
294
309
@@ -336,8 +351,9 @@ module.exports = {
336
351
module: {
337
352
rules: [
338
353
{
339
- test: require . resolve ( " underscore" ) ,
354
+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
340
355
loader: " expose-loader" ,
356
+ type: " javascript/auto" ,
341
357
options: {
342
358
exposes: [
343
359
" _.map map" ,
@@ -382,8 +398,9 @@ module.exports = {
382
398
module: {
383
399
rules: [
384
400
{
385
- test: require . resolve ( " underscore" ) ,
401
+ test: / node_modules [/ \\ ] underscore[/ \\ ] modules [/ \\ ] index-all \. js $ / ,
386
402
loader: " expose-loader" ,
403
+ type: " javascript/auto" ,
387
404
options: {
388
405
exposes: [
389
406
{
@@ -398,6 +415,49 @@ module.exports = {
398
415
};
399
416
```
400
417
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
+
401
461
## Contributing
402
462
403
463
Please take a moment to read our contributing guidelines if you haven't yet done so.
0 commit comments