This plugin enables using Webpack v5 as the bundler for Piral instances and pilets.
Installation
Use your favorite NPM client for the installation:
npm i piral-cli-webpack5 --save-dev
Note: The plugin has to be installed to tell the piral-cli
to use Webpack v5 as the default bundler.
Using
There is nothing to do. Standard commands such as piral build
or pilet debug
will now work with Webpack as the bundler.
This plugin comes with batteries included. You don't need to install or specify your Webpack version.
What's Inside
Right now it includes:
babel-loader
,css-loader
,file-loader
,source-map-loader
,sass-loader
,style-loader
,ts-loader
,parcel-codegen-loader
,import-maps-webpack-plugin
,html-webpack-plugin
,mini-css-extract-plugin
,optimize-css-assets-webpack-plugin
,terser-webpack-plugin
,webpack
, andwebpack-dev-server
.
As such it should be prepared to include assets (images, videos, ...), stylesheets (CSS and SASS), and work with TypeScript.
Customizing
You can still leverage your own webpack.config.js
. Either just export what you want to have overwritten, e.g.,
module.exports = {
devtool: 'inline-source-map',
};
or specify a function that is called with the already created configuration.
An example would be:
module.exports = function(config) {
config.plugins.push(myAwesomePlugin);
config.entry.side = ['@babel/polyfill'];
return config;
};
Otherwise, you can also use the extend-config
helper module to get the job done without having to know the internals:
const extendConfig = require('piral-cli-webpack5/extend-config');
module.exports = extendConfig({
checkTypes: true,
noPresets: true,
rules: [],
removeRules: [],
plugins: [],
removePlugins: [],
fileLoaderOptions: {},
tsLoaderOptions: {},
babelLoaderOptions: {},
cssLoaderOptions: {},
sassLoaderOptions: {},
});
If you want to name your Webpack configuration different than webpack.config.js
you can use the --config
CLI option.
Example:
npx piral build --config my-webpack.js
License
Piral is released using the MIT license. For more information see the license file.