Skip to content

Client tool to Develop, Build, and Package Zimbra X compatible zimlets for development and production.

License

Notifications You must be signed in to change notification settings

Zimbra/zimlet-cli

Folders and files

NameName
Last commit message
Last commit date
Nov 7, 2023
Jun 15, 2023
Jan 13, 2025
Feb 9, 2018
Jun 23, 2021
Jan 16, 2025
Mar 17, 2022
Feb 9, 2018
May 19, 2023
Feb 9, 2018
Dec 3, 2019
Feb 24, 2018
Mar 22, 2018
Feb 9, 2018
Dec 15, 2020
Jan 15, 2025
Feb 12, 2025
Feb 12, 2025

Repository files navigation

CircleCI NPM Downloads NPM Version

Zimlet CLI

A command-line build tool for next generation Zimlets, powered by Webpack.

Install

npm install -g @zimbra/zimlet-cli

Usage

zimlet

Run the zimlet command by itself to see all available options. ZimletCLI makes it easy to get help with the --help option available for all commands.

Documentation

An extensive getting started guide on how to create Zimlets and Java extensions can be found at:

Zimlet CLI command options can be found in:

⚠️ Make sure to accept any self signed certificates generated by the zimlet watch command.

⚠️ The Zimlet is evaluated in a seperate window with a clean environment. This means common global values like window.location will not be available. Instead, many global values are available in the Redux store.


Hacking on the CLI

Want to work on the CLI? It's easy:

# get into this directory:
cd zimlet-cli

# install the dependencies:
npm install

# now any time you change src/ in the CLI package,
# (re-)link your build of the CLI globally:
npm run build && npm link

Doing the above (and repeating the last step for any change to the CLI's source) will introduce a zimlet command globally.

Custom Configuration

Webpack

To customize webpack create a zimlet.config.js file in the root of your Zimlet which exports a function that will change webpack's config. To use a file other than zimlet.config.js, set a custom path as env.config.

/**
 * Function that mutates original webpack config.
 *
 * @param {object} config - original webpack config.
 * @param {object} env - options passed to CLI.
 **/
export default function (config, env) {
  /** you can change config here **/
}