@mixmaxhq/publish-extension-webpack-plugin

1.1.1 • Public • Published

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.

Package Sidebar

Install

npm i @mixmaxhq/publish-extension-webpack-plugin

Weekly Downloads

17

Version

1.1.1

License

Apache-2.0

Unpacked Size

394 kB

Total Files

4

Last publish

Collaborators

  • alan-hadyk
  • leonardo-mixmax
  • dmytro.prysiazhnyi
  • laszlovaspal
  • akashbhalla
  • hishank
  • danyloderkach
  • sergey.polyarush
  • jordins
  • eugene.safronov.dewais
  • joneslloyd
  • kamilgruszka
  • tharindu-wj
  • aminao
  • enuma
  • adriandmitroca
  • mixmaxkristina
  • corridonimatias
  • mikusd
  • mixmax_it
  • andra.lazariuc
  • danaya
  • adborroto
  • aaavakian
  • dnechay
  • raphaelbs
  • guilhermemj
  • eduard.borges
  • mixmax-codeship
  • bradvogel
  • jessem3
  • jsalvata
  • gabriel-mixmax