The piral-instance-webpack-plugin
helps you to build Piral instances using Webpack.
To begin, you'll need to install piral-instance-webpack-plugin
:
npm install piral-instance-webpack-plugin --save-dev
Then add the plugin to your webpack
config. For example:
webpack.config.js
const { PiralInstanceWebpackPlugin } = require('piral-instance-webpack-plugin');
const piralPkg = require('./package.json');
const excludedDependencies = ['piral', 'piral-core', 'piral-base', piralPkg.name];
const dependencies = piralPkg.pilets?.externals ?? [];
const externals = dependencies.filter((m) => !excludedDependencies.includes(m));
module.exports = {
plugins: [
new PiralInstanceWebpackPlugin({
name: piralPkg.name,
version: piralPkg.version,
externals,
}),
],
};
And run webpack
via your preferred method.
Allows supplying additional variables to be used as definitions. Similar to the definePlugin
.
Example:
const { PiralInstanceWebpackPlugin } = require('piral-instance-webpack-plugin');
const piralPkg = require('./package.json');
const excludedDependencies = ['piral', 'piral-core', 'piral-base', piralPkg.name];
const dependencies = piralPkg.pilets?.externals ?? [];
const externals = dependencies.filter((m) => !excludedDependencies.includes(m));
module.exports = {
plugins: [
new PiralInstanceWebpackPlugin({
name: piralPkg.name,
version: piralPkg.version,
externals,
variables: {
PIRAL_CLI_VERSION: require('piral-cli/package.json').version,
},
}),
],
};
Defines the version of the general debugging tools, if any. Setting true
will auto-determine the version. Setting false
or omitting will not include general debugging tools.
Example:
const { PiralInstanceWebpackPlugin } = require('piral-instance-webpack-plugin');
const piralPkg = require('./package.json');
const excludedDependencies = ['piral', 'piral-core', 'piral-base', piralPkg.name];
const dependencies = piralPkg.pilets?.externals ?? [];
const externals = dependencies.filter((m) => !excludedDependencies.includes(m));
module.exports = {
plugins: [
new PiralInstanceWebpackPlugin({
name: piralPkg.name,
version: piralPkg.version,
externals,
debug: true,
}),
],
};
Defines the path of the emulator pilet API, if any. Setting true
will take the default path. Setting false
or omitting will not include the emulator pilet API call.
Example:
const { PiralInstanceWebpackPlugin } = require('piral-instance-webpack-plugin');
const piralPkg = require('./package.json');
const excludedDependencies = ['piral', 'piral-core', 'piral-base', piralPkg.name];
const dependencies = piralPkg.pilets?.externals ?? [];
const externals = dependencies.filter((m) => !excludedDependencies.includes(m));
module.exports = {
plugins: [
new PiralInstanceWebpackPlugin({
name: piralPkg.name,
version: piralPkg.version,
externals,
emulator: '/$pilet-api',
}),
],
};
Contributions in any form are appreciated and much welcome!
Just make sure to post an issue or reach out to me on Gitter before starting actual work on anything. It really helps to avoid problems.
This plugin is released using the MIT license.