JSPM

webpack-express-dev-node

0.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q30154F
  • License MIT

webpack-compiled client & server hot-reloading in a single process

Package Exports

  • webpack-express-dev-node

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (webpack-express-dev-node) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

webpack-express-dev-node

beta software

webpack-compiled client & server hot-reloading in a single process

This is a tool for local development - use in production at your own peril.

Features

Launch your hot-reloading server application in development mode directly from a webpack configuration. This allows for easier alignment of server & client bundle outputs reducing unexpected inconsistencies between them.

  • helps to reduce errors related to client/server module resolution and SSR content matching
  • easier client/server code sharing between complex webpack configurations
  • minimal application differences between development and production at run-time

Transparently wires up webpack-dev-middleware and webpack-hot-middleware to your express stack. This allows you to serve up webpack HMR client assets from memory, in the same process that powers server-side routes, without needing to write development code branches to accomplish this.

  • hot-reload your express server code without forking or killing & restarting the process
  • no need to manage webpack dist output in development
  • no need to manage multiple webpack-dev-servers and their ports

Usage

yarn webpack-express-dev-node webpack.dev.js

  1. Install
  2. Config

Install

yarn add --dev webpack-express-dev-node

Configure webpack

Create a webpack configuration file that exports your server and client configurations.

Use the target: 'node' webpack configuration attribute to designate your server. Below is an example configuration.

const TsPathPlugin = require('tsconfig-paths-webpack-plugin');
const mode = 'development';
const nodeExternals = require('webpack-node-externals');

const resolve = {
    extensions: ['.tsx', '.ts', '.js'],
    plugins: [
        new TsPathPlugin({ configFile: './tsconfig.json' }),
    ],
};

module.exports = {
    target: 'node',
    externals: [nodeExternals()],
    entry: './test.index.js',
    resolve,
    mode,
    module: {
        rules: [
            {
                test: /\.(ts|js)x?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
            },
        ],
    },
    output: {
        filename: 'server.js',
    },
};

Run

yarn webpack-express-dev-node webpack.dev.js

Contributions

This software sucks and there are some missing features, I'll get to them eventually, but PRs are welcome.