All Projects → fliphub → d-l-l

fliphub / d-l-l

Licence: other
Simplified DLL config creator & handler

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to d-l-l

example-app
Example app showcasing fulls1z3's Angular libraries
Stars: ✭ 27 (+0%)
Mutual labels:  config, dll
vue-cli-plugin-dll
Vue CLI 3 plugin for Webpack DllPlugin/DllReferencePlugin
Stars: ✭ 77 (+185.19%)
Mutual labels:  dll, dllplugin
parse-git-config
Parse `.git/config` into a JavaScript object. sync or async.
Stars: ✭ 55 (+103.7%)
Mutual labels:  config
DYNAMICMORTAL
Config files for my GitHub profile.
Stars: ✭ 19 (-29.63%)
Mutual labels:  config
lime
Simple standalone Zsh theme
Stars: ✭ 15 (-44.44%)
Mutual labels:  config
scheriff
Schema Sheriff: yet another Kubernetes manifests validation tool
Stars: ✭ 15 (-44.44%)
Mutual labels:  config
FA2sp
C&C Red Alert 2: Yuri's Revenge Map Editor : Final Alert 2 extension
Stars: ✭ 28 (+3.7%)
Mutual labels:  dll
read-env
🔧 Transform environment variables into JSON object with sanitized values.
Stars: ✭ 60 (+122.22%)
Mutual labels:  config
ProcessInjector.NET
Learning Process Injection and Hollowing techniques
Stars: ✭ 23 (-14.81%)
Mutual labels:  dll
PEDetour
modify binary Portable Executable to hook its export functions
Stars: ✭ 59 (+118.52%)
Mutual labels:  dll
lightning-hydra-template
PyTorch Lightning + Hydra. A very user-friendly template for rapid and reproducible ML experimentation with best practices. ⚡🔥⚡
Stars: ✭ 1,905 (+6955.56%)
Mutual labels:  config
qtile-config
My qtile config
Stars: ✭ 47 (+74.07%)
Mutual labels:  config
dlib
Dynamic loading library for C/C++
Stars: ✭ 19 (-29.63%)
Mutual labels:  dll
logstash-config
logstash-config provides a parser and abstract syntax tree (AST) for the Logstash config format, written in Go
Stars: ✭ 26 (-3.7%)
Mutual labels:  config
eslint-config-trybe
ESLint shared config packages used be Trybe
Stars: ✭ 55 (+103.7%)
Mutual labels:  config
RunDLL-NG
A better alternative to RunDLL32
Stars: ✭ 23 (-14.81%)
Mutual labels:  dll
rc-config-loader
Load config from .{product}rc.{json,yml,js} file
Stars: ✭ 46 (+70.37%)
Mutual labels:  config
AbbasAtaei
Config files for my GitHub profile.
Stars: ✭ 47 (+74.07%)
Mutual labels:  config
blazor-lazy-loading
Automatic Lazy Loading support for Blazor (Server and WebAssembly)
Stars: ✭ 89 (+229.63%)
Mutual labels:  dll
stumpwm-config
My configuration files for StumpWM
Stars: ✭ 62 (+129.63%)
Mutual labels:  config

🤸 d-l-l

NPM version MIT License fliphub flipfam

easy, automatic, optimized dll config handler for webpack

📦 install

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

📘 examples

🌐 full api

advanced config examples

🔗 read more webpack dll plugins

🔬 tests

👋 intro

Webpack's Dll and DllReference plugins are a way to split a large JavaScript project into multiple bundles which can be compiled independently. They can be used to optimize build times (both full and incremental) and improve caching for users by putting code which changes infrequently into separate "library" bundles. - Robert Knight

Unfortunately, the DLL plugins come with some problems.

ℹ️️ This package aims to provide solutions for them by allowing you to pass in any existing webpack config, then get it back decorated with dll-reference-plugins and (only when needed) a whole dll-plugin-only config prepended!

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 33) builds
  5. after a day since the last build

see the src code

📖 usage - custom

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

const dll = new DLL()
const configs = dll
  .dir(__dirname)
  .config(config)
  // (dependencies, dev, all)
  .pkgDeps(deps => deps.filter(dep => !/lodash/.test(dep)))
  .toConfig()

module.exports = configs

👾 easy full auto usage

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

const dll = new DLL()
const configs = dll
  .dir(__dirname)
  .config(config)
  .find()
  // defaults to bundledDependencies, fallback to dependencies
  .pkgDeps()
  .toConfig()

module.exports = configs
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].