A webpack plugin that publishes extension builds to the Chrome Web Store.
To begin, you'll need to install publish-extension-webpack-plugin
:
$ npm install publish-extension-webpack-plugin --save-dev
Then add the plugin to your webpack
config. For example:
webpack.config.babel.js
import PublishExtensionPlugin from 'publish-extension-webpack-plugin';
export default {
// ...
plugins: [
new PublishExtensionPlugin({
// options go here
}),
],
};
And run webpack
via your preferred method.
Type: String
Default: process.env.GOOGLE_EXTENSION_ID
If not provided via options, this must be present in your environment as GOOGLE_EXTENSION_ID
. You can get this from your extension's control panel on the Developer Dashboard.
$ GOOGLE_EXTENSION_ID=extensionidgoeshere123 webpack
Type: String
Default: process.env.GOOGLE_CLIENT_ID
If not provided via options, this must be present in your environment as GOOGLE_CLIENT_ID
. You can get this and your other secret keys by following this guide.
$ GOOGLE_CLIENT_ID=clientidgoeshere123 webpack
Type: String
Default: process.env.GOOGLE_CLIENT_SECRET
If not provided via options, this must be present in your environment as GOOGLE_CLIENT_SECRET
. You can get this and your other secret keys by following this guide.
$ GOOGLE_CLIENT_SECRET=clientsecretgoeshere123 webpack
Type: String
Default: process.env.GOOGLE_REFRESH_TOKEN
If not provided via options, this must be present in your environment as GOOGLE_REFRESH_TOKEN
. You can get this and your other secret keys by following this guide.
$ GOOGLE_REFRESH_TOKEN=refreshtokengoeshere123 webpack
Type: String
Default: webpack.output.path
The path containing the build of your extension. This should include a manifest file.
// in your webpack.config.js
new PublishExtensionPlugin({
path: './dist/my-chrome-extension/',
})
Type: Boolean
Default: false
By default, the plugin only logs any errors encountered while publishing. Set this to true
to additionally throw an error.
// in your webpack.config.js
new PublishExtensionPlugin({
throwOnFailure: true,
})
Type: Boolean
Default: false
By default, the generated ZIP file used for publishing the extension is deleted if the upload is successful. Set this to true
to keep the ZIP file.
// in your webpack.config.js
new PublishExtensionPlugin({
keepBundleOnSuccess: true,
})
Type: Boolean
Default: false
Set this to true
to suppress logging.
// in your webpack.config.js
new PublishExtensionPlugin({
silent: true,
})
Type: Boolean
Default: false
Set this to true
to disable the plugin (this is the same as not including it to begin with).
// in your webpack.config.js
new PublishExtensionPlugin({
disabled: true,
})
PRs are welcome! Please see the contributing guide.