# Monorepos और workspaces — Webpack: Module Bundling और Build Optimization

Source: https://www.skillbyai.com/hi/webpack/webpack-19

> Duplicate dependencies से बचने के लिए workspace resolution, aliases और externals के साथ monorepos के लिए Webpack configure करें।

## Monorepo bundling

Monorepos एक single repo में multiple packages contain करते हैं। Webpack को workspace roots से packages को resolve करना चाहिए। Local package imports के लिए resolve.modules को configure करें।

## Monorepo resolution को configure करें

Multiple workspace locations से packages को resolve करने के लिए Webpack set up करें।

```javascript
module.exports = {
  resolve: {
    modules: [
      'node_modules',
      path.resolve(__dirname, '../packages'),
      path.resolve(__dirname, '../shared')
    ],
    alias: {
      '@company/ui': path.resolve(__dirname, '../packages/ui'),
      '@company/core': path.resolve(__dirname, '../packages/core')
    }
  }
};
```

Output:

```
Resolves local packages as if they're installed
```

## Shared dependencies matter करते हैं

Monorepos में, एक ही dependency को multiple times bundle करने से avoid करें। node_modules को bundling से exclude करने के लिए externals use करें।

त्वरित जाँच

**Quiz:** Monorepos के लिए resolve.modules को क्यों configure करें?

- [ ] Bundling process को तेज करने के लिए।
- [ ] Shared dependencies को compress करने के लिए।
- [ ] Symlinks को पूरी तरह disable करने के लिए।
- [x] Node_modules के अलावा workspace locations में packages को find करने के लिए।

*Answer:* Node_modules के अलावा workspace locations में packages को find करने के लिए।. resolve.modules Webpack को बताता है कि packages को कहाँ search करना है, local workspace packages के resolution को enable करता है।
