A webpack plugin to generate a plugin zip
npm install @kintone/webpack-plugin-kintone-plugin
!Node.js version
!License
A webpack plugin to create a plugin zip of Kintone.
``js
"use strict";
const path = require("path");
const KintonePlugin = require("@kintone/webpack-plugin-kintone-plugin");
module.exports = {
entry: {
desktop: "./src/desktop.js",
mobile: "./src/mobile.js",
},
output: {
path: path.resolve(__dirname, "plugin", "js"),
filename: "[name].js",
},
plugins: [
new KintonePlugin({
manifestJSONPath: "./plugin/manifest.json",
privateKeyPath: "./private.ppk",
pluginZipPath: "./dist/plugin.zip",
}),
],
};
`
The settings is the following structure.
- src/desktop.js is an entry point of desktop javascript.src/mobild.js
- is an entry point of desktop javascript.plugin
- is the directory of the plugin, which includes manifest.json and other resources.private.ppk
- is the private key for the plugindist/plugin.zip
- is the plugin zip file.
To generate a private key for your plugin, use the cli-kintone command:
`bash`
npx @kintone/cli plugin keygen --output ./private.ppk
For more details, see the cli-kintone documentation.
``
npm install @kintone/webpack-plugin-kintone-plugin
You can customize the paths of manifest.json, privateKey and plugin zip.
Those default values are like the following.
``
manifestJSONPath: './manifest.json',
privateKeyPath: './private.ppk',
pluginZipPath: './dist/plugin.zip'
If you want to customize these values, you can update the values like this.
`js
"use strict";
const path = require("path");
const KintonePlugin = require("@kintone/webpack-plugin-kintone-plugin");
module.exports = {
entry: {
desktop: "./src/desktop.js",
mobile: "./src/mobile.js",
},
output: {
path: path.resolve(__dirname, "plugin", "js"),
filename: "[name].js",
},
plugins: [
new KintonePlugin({
manifestJSONPath: "./plugin/manifest.json",
privateKeyPath: "./private.ppk",
pluginZipPath: "./dist/plugin.zip",
}),
],
};
`
In addition to that, you can specify the plugin zip name based on the plugin id and values of the manifest.json.
`js${id}.${manifest.version}.plugin.zip
plugins: [
new KintonePlugin({
manifestJSONPath: "./plugin/manifest.json",
privateKeyPath: "./private.ppk",
pluginZipPath: (id, manifest) => ,``
}),
];
MIT License