Skip to content
This repository has been archived by the owner on Oct 14, 2022. It is now read-only.

Universal Development Kit: Webpack extension which improves universal application development. - THE UDK PROJECT SUPPORT IS CURRENTLY SUSPENDED.

License

enten/udk

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

Universal Development Kit

Webpack extension which improves universal application development.

NPM Version NPM Dependencies Build Status Coverage Status License: MIT

THE UDK PROJECT SUPPORT IS CURRENTLY SUSPENDED

After Webpack 5 release (2020-10-10), major changes are needed to make udk compatible.

We ignore what will be the future of udk for a possible next major release: maybe we will focus on the main feature which enhances multicompilers dependencies in sequential way.

When developments started, we thought that webpack multicompiler module was a great feature to optimize building workflows. But we found that multicompiler is rarely used.

udk packages will continue working indefinitely so no immediate changes are necessary.

Features

Install

npm install --save-dev udk webpack

The Gist

// webpack.config.js

const mode = process.env.NODE_ENV === 'production' ? 'production' : 'development';

const client = {
  name: 'client',
  entry: './src/client.js',
  output: {
    path: __dirname + '/dist',
    filename: 'client.js'
  }
};

const server = {
  name: 'server',
  dependencies: [ client.name ], // server depends on client
  entry: './src/server.js',
  output: {
    path: __dirname + '/dist',
    filename: 'server.js'
  }
};

module.exports = [ client, server ]; // webpack multi config
// src/client.js

import './shared';

console.log('Hello, client');
// src/server.js

import './shared';

console.log('Hello, server');
// src/shared.js

console.log('Hello, shared');
DEBUG=udk:* npx udk --config webpack.config.js --watch

Now, try to update each file and check the output:

  1. update client.js to check that server compiler will be invalidate when client compiler done ;
  2. update server.js to check that sever compiler will be the only one compiler invalided ;
  3. update shared.js to check that server compiler will wait client compiler done before compile too ;
  4. update shared.js with a syntax error to check that server won't compile because client compiler has error ;
  5. update shared.js to fix syntax error and check client and server compilers will run in serie.

Run webpack --config webpack.config.js --watch and try the same updates to check the difference between webpack and udk multi compiler behavior.

Under the hood, udk extends MultiCompiler only to ensure some behaviors:

  • Invalidate compiler dependants when a compiler done ;
  • Interupt compilation if a compiler dependency has stats errors ;
  • Wait compiler dependency done when a shared file are updated.

Command Line Interface

udk.js

Same as webpack CLI.

Usage with config file

udk [--config webpack.config.js]

Usage without config file

udk <entry> [<entry>] <output>

All webpack CLIs are supported:

Node.js API

See docs/api.md.

FAQ

See docs/faq.md.

DevContainer

See docs/dev-container.md.

Implementation

See docs/implementation.md.

License

MIT

About

Universal Development Kit: Webpack extension which improves universal application development. - THE UDK PROJECT SUPPORT IS CURRENTLY SUSPENDED.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published