Build your SPA with Webpack
Frontwerk uses Webpack under the hood to bundle your Javascript application.
Default configuration
You can run the following command and have Webpack bundle your javascript.
frontwerk build --pack
The above command assumes you have structured your project to have a
src
folder where your Javascript lives and adist
folder where the compiled versions will be written to. Furthermore, your entry point is asrc/index.js
orsrc/index.jsx
(if using React) file.
By default, Webpack will use the configuration based on the --mode
flag passed via the CLI (either developmet
or production
). You can browse the source code to see the configuration and the plugins used.
Overriding the defaults
There are two possible ways to extend or create your Webpack config.
- Create a file named
webpack.config.js
in your project root. - Pass a
--config
argument with your build task.
If you don’t know how to create a webpack.config.js
file, please have a read on the Webpack website.
Because Frontwerk’s default webpack.config.js
exports a configuration object, you can extend it in your own config file.
const { webpack: webpackConfig } = require('frontwerk/config');
module.exports = Object.assign(webpackConfig, {
// your overrides here
});
Entry point
Frontwerk assumes your entry point is src/index.js(x)
. You can override this by passing the --entry
flag.
frontwerk build --pack --entry source/main.js
Destination directory
Frontwerk assumes your destination directory is dist
. You can override this by passing the --output-path
flag.
frontwerk build --pack --output-path [folder]
CLI options
There are a couple of other sensible defaults that you can override:
--watch
will watch the files for changes and rebundle as needed--no-clean
will not clean thedist
directory before bundling--mode
will set the correct environment. Eitherdevelopment
orproduction