- Webpack architecture
- Cli: https://github.com/webpack/webpack-cli
- Development server
- https://github.com/webpack/webpack-cli/blob/master/packages/serve
- https://github.com/webpack/webpack-dev-server
- https://github.com/webpack/webpack-dev-middleware
- TODO:
- memfs setup
- live reload
- client runtime
- hot module replacement
- Module system
- javascript parsing
- internal format (module)
- runtime/output format
- dependencies management
- resolver api
- loader runner
- Node api
- Webpack instance
- Plugin api (compiler, compilation)
- html-webpack-plugin
- Loader api (loader context)
- ts-loader (written in typescript so easier to follow)
- style-loader (simple pitch phase and hmr example)
- Hot module replacement
#
# Cli
#
(webpack) bin/webpack.js =>
(webpack-cli) bin/cli.js => lib/bootstrap.js =>
new WebpackCLI.run =>
(for build) WebpackCLI.buildCommand
(for serve) @webpack-cli/serve
#
# Development server
#
(@webpack-cli/serve) action callback =>
compiler = WebpackCLI.createCompiler(...)
DevServer = require("webpack-dev-server")
new DevServer(compiler, ...).listen
(webpack-dev-server)
DevServer.listen =>
initialize =>
server.listen
(webpack-dev-middleware)
#
# Standard build
#
(webpack) webpack(options, callback) => TODO