GrapesJS / cli

GrapesJS CLI helper for the development
MIT License
100 stars 29 forks source link

GrapesJS CLI

npm

grapesjs-cli

A simple CLI library for helping in GrapesJS plugin development.

The goal of this package is to avoid the hassle of setting up all the dependencies and configurations for the plugin development by centralizing and speeding up the necessary steps during the process.

Plugin from 0 to 100

Create a production-ready plugin in a few simple steps.

mkdir grapesjs-my-plugin
cd grapesjs-my-plugin
npm init -y
git init
npm i -D grapesjs-cli
npx grapesjs-cli init

You can also skip all the questions with -y option or pass all the answers via options (to see all available options run npx grapesjs-cli init --help)

npx grapesjs-cli init -y --user=YOUR-GITHUB-USERNAME
npx grapesjs-cli serve

If you need a custom port use the -p option

npx grapesjs-cli serve -p 8081

Under the hood we use webpack-dev-server and you can pass its option via CLI in this way

npx grapesjs-cli serve --devServer='{"https": true}'
npx grapesjs-cli build

Customization

Customize webpack config

If you need to customize the webpack configuration, you can create webpack.config.js file in the root dir of your project and export a function, which should return the new configuration object. Check the example below.

// YOUR-PROJECT-DIR/webpack.config.js

// config is the default configuration
export default ({ config }) => {
    // This is how you can distinguish the `build` command from the `serve`
    const isBuild = config.mode === 'production';

    return {
        ...config,
        module: {
            rules: [ { /* extra rule */ }, ...config.module.rules ],
        },
    };
}

Generic CLI usage

Show all available commands

grapesjs-cli

Show available options for a command

grapesjs-cli COMMAND --help

Run the command

grapesjs-cli COMMAND --OPT1 --OPT2=VALUE

License

MIT