@efox/snowpack-plugin-webpack5
use webpack 5 to bundle your application for production.
Install
npm install --save-dev @efox/snowpack-plugin-webpack5
Usage
Add @efox/snowpack-plugin-webpack5
to snowpack.config.json
:
{
"plugins": [
[
"@efox/snowpack-plugin-webpack5 ",
{
/* see "Plugin Options" below */
}
]
]
}
or to snowpack.config.js
:
module.exports = {
plugins: [
[
'@efox/snowpack-plugin-webpack5 ',
{
/* see "Plugin Options" below */
},
],
],
};
The options object is optional.
Default Build Script
{
"scripts": {"bundle:*": "@efox/snowpack-plugin-webpack5 "}
}
Plugin Options
-
sourceMap: boolean
- Enable sourcemaps in the bundled output. -
outputPattern: {css: string, js: string, assets: string}
- Set the URL for your final bundled files. This is where they will be written to disk in thebuild/
directory. See Webpack'soutput.filename
documentation for examples of valid values. -
extendConfig: (config: WebpackConfig) => WebpackConfig
- extend your webpack config, see below. -
manifest: boolean | string
- Enable generating a manifest file. The default value isfalse
, the default file name is./asset-manifest.json
if setting manifest totrue
. The relative path is resolved from the output directory. -
htmlMinifierOptions: boolean | object
- See below. -
failOnWarnings: boolean
- Does fail the build when Webpack emits warnings. The default value isfalse
.
Extending The Default Webpack Config
The extendConfig
option is a function that you can provide to configure the default webpack config. If you provide this function, the plugin will pass its return value to webpack.compile()
. Use this to make changes, add plugins, configure loaders, etc.
Note that this requires you use a snowpack.config.js
JavaScript config file. JSON configuration cannot represent a function.
// snowpack.config.js
module.exports = {
plugins: [
[
'@efox/snowpack-plugin-webpack5 ',
{
extendConfig: (config) => {
config.plugins.push(/* ... */);
return config;
},
},
],
],
};
Minify HTML
With htmlMinifierOptions
you can either disable the minification entirely or provide your own options.
// snowpack.config.js
module.exports = {
plugins: [
[
'@efox/snowpack-plugin-webpack5 ',
{
htmlMinifierOptions: false, // disabled entirely,
},
],
],
};
The default options are:
{
collapseWhitespace: true,
removeComments: true,
removeEmptyAttributes: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
}