# webpack-dependency-suite

> A set of Webpack plugins, loaders and utilities designed for advanced dependency resolution

Latest version **2.4.5** (published 2017-08-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install webpack-dependency-suite
pnpm add webpack-dependency-suite
yarn add webpack-dependency-suite
bun add webpack-dependency-suite
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.4.5 |
| Published | 2017-08-23 |
| First published | 2016-11-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 19 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 35 |
| Author | Bazyli Brzóska |
| Maintainers | niieani |
| Keywords | webpack, toolkit, suite, plugin, loader, require.include |

## Links

- npm: https://www.npmjs.com/package/webpack-dependency-suite
- Repository: https://github.com/niieani/webpack-dependency-suite
- Homepage: https://github.com/niieani/webpack-dependency-suite#readme
- Issues: https://github.com/niieani/webpack-dependency-suite/issues
- npm.io page: https://npm.io/package/webpack-dependency-suite

## Dependencies (19)

- [acorn](https://npm.io/package/acorn.md) ^5.0.3
- [debug](https://npm.io/package/debug.md) ^3.0.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.4
- [semver](https://npm.io/package/semver.md) ^5.3.0
- [cheerio](https://npm.io/package/cheerio.md) ^1.0.0-rc.1
- [source-map](https://npm.io/package/source-map.md) ^0.5.6
- [@types/node](https://npm.io/package/@types/node.md) ^8.0.0
- [html-loader](https://npm.io/package/html-loader.md) ^0.4.5
- [@types/acorn](https://npm.io/package/@types/acorn.md) ^4.0.2
- [@types/debug](https://npm.io/package/@types/debug.md) ^0.0.29
- [loader-utils](https://npm.io/package/loader-utils.md) ^1.1.0
- [@types/estree](https://npm.io/package/@types/estree.md) 0.0.35
- [@types/lodash](https://npm.io/package/@types/lodash.md) ^4.14.67
- [@types/semver](https://npm.io/package/@types/semver.md) ^5.3.32
- [@types/cheerio](https://npm.io/package/@types/cheerio.md) ^0.22.1
- [@types/webpack](https://npm.io/package/@types/webpack.md) ^3.0.0
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^1.0.5
- [@types/enhanced-resolve](https://npm.io/package/@types/enhanced-resolve.md) ^3.0.3
- [@types/escape-string-regexp](https://npm.io/package/@types/escape-string-regexp.md) ^0.0.30

## Recent versions

- 2.4.5 (latest) — 2017-08-23
- 2.4.4 — 2017-07-26
- 2.4.3 — 2017-06-30
- 2.4.2 — 2017-06-30
- 2.4.1 — 2017-06-30
- 2.4.0 — 2017-06-30
- 2.3.0 — 2017-06-29
- 2.2.0 — 2017-06-25
- 2.1.2 — 2017-06-19
- 2.1.1 — 2017-06-12
- 2.1.0 — 2017-06-12
- 2.0.2 — 2017-06-10
- 2.0.1 — 2017-06-10
- 2.0.0 — 2017-06-10
- 1.5.0 — 2016-11-21
- … 11 more at https://npm.io/package/webpack-dependency-suite/versions

## README

# Webpack Dependency Suite

[![Greenkeeper badge](https://badges.greenkeeper.io/niieani/webpack-dependency-suite.svg)](https://greenkeeper.io/)
A set of loaders, plugins and utilities designed to help with adding custom dependencies to your project.

## Usage
TODO.

## Parts of the Suite

### `require.include` loaders

These are a bit like [baggage-loader](https://github.com/deepsweet/baggage-loader) but more configurable and advanced.

- comment-include-loader:
```js
    /* @import */ 'module'
    /* @import @lazy @ */ 'module'
    /* @import('thing\/*\/also\/works') @lazy @ */ 'module' // <<- globs will not work in comments cause of /**/ unless you escape slashes
```
- conventional-include-loader (include related files according to passed in function(fs)) [eg. like-named require loader for .html files]
- template require loader
    <require from="..." lazy bundle="abc"> (and others - configurable?)
    ${} globbing by:
      - splitting path by '/'
      - find first component where * is
      - resolve previous one || contextDir
      - get all files recursively
      - split their paths '/'
      - add all that match the regex 
- explicit loader: 
    adds all dependencies listed in a JSON file to a given, individual file (entry?)
    expose a method to check if a path should override/add loaders by query configuration
- note: globbed paths MUST include extensions

### Resolve Plugins

- resolve plugin for trying nested directories auto-resolve stuff (e.g. Aurelia's `/dist/es2015`)
- resolve plugin to use root module from node_modules if version range satisfied

### Normal Use Plugins

- mapped relative moduleId plugin
    sets ModuleID:
      - use relative to any of config.modules (node_modules, app)
      - no JS extensions
      - rewrite paths for aurelia (strip /dist/node_modules/)
      - strip nested node_modules/.../node_modules
      - just do: package_name/request
      - for /index do package_name
      - name loader-based modules with a prefix: LOADER!NAME
      - aurelia loader checks cache for normal module name, then for async!NAME
    sets module.id relative to configured directory
    optionally keeps extension (.js .ts)

## Development / Debugging
There are two scripts that are setup already: 

* `npm run dev`
  * will run the same configuration instead with webpack-dev-server for live reload

* `npm run build`
  * will simply execute a webpack build in the repo

* `npm run debug`
	* will run the same build with node debugger.
	* paste provided link in Chrome (or Canary), and you will have the super incredible ChromeDevTools to step through your code for learning, exploration, and debugging. 

## Helpful resources: 
* [How to write a webpack loader](https://webpack.github.io/docs/how-to-write-a-loader.html)
* [How to write a plugin](https://github.com/webpack/docs/wiki/How-to-write-a-plugin)
* [Webpack Plugin API](https://webpack.github.io/docs/plugins.html)
* [webpack-sources](https://github.com/webpack/webpack-sources)
* [enhanced-resolve](https://github.com/webpack/enhanced-resolve)

## Recognition
The repository is based on the fantastic [webpack-developer-kit](https://github.com/TheLarkInn/webpack-developer-kit) by TheLarkInn, inspired by blacksonics.

---
_Source: https://npm.io/package/webpack-dependency-suite · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
