Skip to content
James edited this page Apr 16, 2017 · 7 revisions

⚑🀸 d-l-l

NPM version MIT License fliphub flipfam

easy, automatic, optimized dll config handler for webpack

pass in any existing webpack config, get it decorated with dll-reference-plugin and (only when needed) a whole dll-plugin-only!

πŸ“¦ install

yarn add d-l-l --dev
npm i d-l-l --save-dev

πŸ‘‹ intro

Using Webpack DLL Plugins can have a drastic build time boost. It allows creating separate bundles for files & dependencies that do not change often.

Unfortunately, it comes with some problems. Thankfully, this package aims to provide solutions for them.

❎ problems with dll plugin:

  • can be a pain to configure
  • requires manually adding plugins, and the entry points in your source code alongside the package dependencies
  • requires multiple config files
  • requires multiple build scripts
  • requires manual cache busting when you change code, which makes it difficult to dynamically include code that does not often change
  • does not work without even more configuration on nodejs

βœ… solution

πŸ–ΌοΈ screenshots

without d-l-l
without d-l-l manual
with d-l-l
with-d-l-l

❔ how

Webpack allows exporting an array of configs, so when required, a DLL-only config is created using the provided config(s) & prepended to the array of configs.

Cache files are created in a .fliphub folder (can be safely added to gitignore, similar to .happypack or similar). This helps to provide some smart-ish checks:

✚ = (dll config will be prepended)

  1. when no cache exists, ✚
  2. when there are no manifest files, ✚
  3. when cache-busting-files change, the cache is busted and ✚
  4. every X (default 10) builds ✚
  5. after a day since the last build ✚

see the src code

πŸ“– usage

// webpack.config.js
const DLL = require('d-l-l')

const dll = new DLL()
const configs = dll
  .dir(__dirname)
  .config(config)
  .find()
  .pkgDeps()
  .toConfig()

module.exports = configs