Skip to main content
The current front end (ui/3x, package pixwel-ui) is built with Webpack 5. It replaces the Gulp pipeline the legacy AngularJS UI used.
Work in ui/3x with pnpm — its engines field says npm, but npm install fails there. Install dependencies with pnpm install.

Common commands

Run these from ui/3x:
CommandWhat it does
pnpm startStart the Webpack dev server on port 9000.
pnpm start:devDev server with DEV=true, opening a browser.
pnpm build:ciProduction build (CI=true webpack build).
pnpm serve:ciServe the built dist/ on port 9000.
pnpm lintESLint + Stylelint over the source.
pnpm testJest with coverage — see UI testing.
pnpm storybookStorybook on port 6006.
The dev server is reached at https://development.pixwel.com:9000.

How the build is configured

The build is defined in ui/3x/webpack.config.js:
  • Entryindex.js.
  • Output — hashed bundles (js/[name].[contenthash].js) with publicPath: '/', written to the dist/ directory.
  • Dev server — runs on port 9000 with historyApiFallback for client-side routing and a proxy to the API.
  • Styles — SCSS compiled with sass-loader.
  • JavaScript — transpiled with Babel.
Key plugins:
  • HtmlWebpackPlugin — generates index.html from a template.
  • CopyWebpackPlugin — copies static assets into the build.
  • ProvidePlugin / DefinePlugin — inject globals and process.env.NODE_ENV.
  • @sentry/webpack-plugin — uploads source maps to Sentry for error tracking.
mode is development for the dev server and production for build:ci.