Skip to content

Ember Fast CLI - fast command line inteface for ember projects

License

Notifications You must be signed in to change notification settings

lifeart/ember-fast-cli

Repository files navigation

ember-fast-cli

This addon allow execute cli commands on running ember-cli instance.

ember-cli commands execution relatively slow, because we need to revalidate all dependencies and initialize all addons on each command execution (we have to boot full cli to execute any blueprint).

It may take up to 5-20s to generate component using ember g component foo-bar.

But, if we will execute commands on already started cli (development server, running by ember s), we can get 500x boost on cli performance, for my case component generation time reduced from 10s to 0.2s.

terminal

Compatibility

  • Ember.js v3.16 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Installation

ember install ember-fast-cli

Usage

How to run addon with `ember-cli < 3.16.0`

edit node_modules/ember-cli/lib/cli/index.js and add one line

cli.env = environment; // <-- we need to add this line

here:

  let environment = {
    tasks: loadTasks(),
    cliArgs: options.cliArgs,
    commands: loadCommands(),
    project,
    settings: merge(defaultUpdateCheckerOptions, config.getAll()),
  };

  cli.env = environment; // <-- we need to add this line

  return cli.run(environment).finally(() => willInterruptProcess.release());

After you have started your development server using ember serve, this addon adds a custom middleware listening to /cli endpoint.

Open http://localhost:4200/cli in your web browser to access fast-cli.

type: g component foo-bar + Enter

Check files! Repeat if you enjoying it. Star if you like it! :)

Also, ember-fast-cli working with Unstable Ember Language Server, and allow developers to execute ember-cli commands from vscode command interface. Open vscode command line and search for Ember.

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.