1.1.1 • Published 2 years ago

@mixmaxhq/publish-extension-webpack-plugin v1.1.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

Build Status

Publish Extension Webpack Plugin

A webpack plugin that publishes extension builds to the Chrome Web Store.

Getting Started

To begin, you'll need to install @mixmaxhq/publish-extension-webpack-plugin:

$ npm install @mixmaxhq/publish-extension-webpack-plugin --save-dev

Then add the plugin to your webpack config. For example:

webpack.config.babel.js

import PublishExtensionPlugin from '@mixmaxhq/publish-extension-webpack-plugin';

export default {
  // ...
  plugins: [
    new PublishExtensionPlugin({
      // options go here
    }),
  ],
};

And run webpack via your preferred method.

Options

extensionId

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

clientId

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

clientSecret

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

refreshToken

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

target

Type: String Default: default

The publish target for the extension:

  • default - the extension will be available to everyone (published as public extension).
  • trustedTesters - the extension will be available only to trusted testers (published as private extension).
  • draft - the extension will be uploaded to the store, but not published.
// in your webpack.config.js
new PublishExtensionPlugin({
  target: 'trustedTesters',
})

path

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/',
})

keepBundleOnSuccess

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,
})

silent

Type: Boolean Default: false

Set this to true to suppress logging.

// in your webpack.config.js
new PublishExtensionPlugin({
  silent: true,
})

disabled

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,
})

Contributing

PRs are welcome! Please see the contributing guide.