Nonsense Poetry Manager

    @oclif/plugin-plugins
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.0 • Public • Published

    @oclif/plugin-plugins

    plugins plugin for oclif

    Version CircleCI Appveyor CI Known Vulnerabilities Downloads/week License

    What is this?

    This plugin is used to allow users to install plugins into your oclif CLI at runtime. For example, in the Heroku CLI this is used to allow people to install plugins such as the Heroku Kafka plugin:

    $ heroku plugins:install heroku-kafka
    $ heroku kafka

    This is useful to allow users to create their own plugins to work in your CLI or to allow you to build functionality that users can optionally install.

    One particular way this is useful is for building functionality you aren't ready to include in a public repository. Build your plugin separately as a plugin, then include it as a core plugin later into your CLI.

    Usage

    First add the plugin to your project with yarn add @oclif/plugin-plugins, then add it to the package.json of the oclif CLI:

    {
      "name": "mycli",
      "version": "0.0.0",
      // ...
      "oclif": {
        "plugins": ["@oclif/plugin-help", "@oclif/plugin-plugins"]
      }
    }

    Now the user can run any of the commands below to manage plugins at runtime.

    Friendly names

    To make it simpler for users to install plugins, we have "friendly name" functionality. With this, you can run mycli plugins:install myplugin and it will first check if @mynpmorg/plugin-myplugin exists on npm before trying to install myplugin. This is useful if you want to use a generic name that's already taken in npm.

    To set this up, simply set the oclif.scope to the name of your npm org. In the example above, this would be mynpmorg.

    Aliases

    Over time in the Heroku CLI we've changed plugin names, brought plugins into the core of the CLI, or sunset old plugins that no longer function. There is support in this plugin for dealing with these situations.

    For renaming plugins, add an alias section to oclif.aliases in package.json:

    "aliases": {
      "old-name-plugin": "new-name-plugin"
    }

    If a user had old-name-plugin installed, the next time the CLI is updated it will remove old-name-plugin and install new-name-plugin. If a user types mycli plugins:install old-name-plugin it will actually install new-name-plugin instead.

    For removing plugins that are no longer needed (either because they're sunset or because they've been moved into core), set the alias to null:

    "aliases": {
      "old-name-plugin": null
    }

    old-name-plugin will be autoremoved on the next update and will not be able to be installed with mycli plugins:install old-name-plugin.

    Commands

    mycli plugins

    List installed plugins.

    USAGE
      $ mycli plugins [--core]
    
    FLAGS
      --core  Show core plugins.
    
    DESCRIPTION
      List installed plugins.
    
    EXAMPLES
      $ mycli plugins
    

    See code: src/commands/plugins/index.ts

    mycli plugins:inspect PLUGIN...

    Displays installation properties of a plugin.

    USAGE
      $ mycli plugins:inspect PLUGIN...
    
    ARGUMENTS
      PLUGIN  [default: .] Plugin to inspect.
    
    FLAGS
      -h, --help     Show CLI help.
      -v, --verbose
    
    DESCRIPTION
      Displays installation properties of a plugin.
    
    EXAMPLES
      $ mycli plugins:inspect myplugin
    

    See code: src/commands/plugins/inspect.ts

    mycli plugins:install PLUGIN...

    Installs a plugin into the CLI.

    USAGE
      $ mycli plugins:install PLUGIN...
    
    ARGUMENTS
      PLUGIN  Plugin to install.
    
    FLAGS
      -f, --force    Run yarn install with force flag.
      -h, --help     Show CLI help.
      -v, --verbose
    
    DESCRIPTION
      Installs a plugin into the CLI.
    
      Can be installed from npm or a git url.
    
      Installation of a user-installed plugin will override a core plugin.
    
      e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
      will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
      the CLI without the need to patch and update the whole CLI.
    
    ALIASES
      $ mycli plugins:add
    
    EXAMPLES
      $ mycli plugins:install myplugin 
    
      $ mycli plugins:install https://github.com/someuser/someplugin
    
      $ mycli plugins:install someuser/someplugin
    

    See code: src/commands/plugins/install.ts

    mycli plugins:link PLUGIN

    Links a plugin into the CLI for development.

    USAGE
      $ mycli plugins:link PLUGIN
    
    ARGUMENTS
      PATH  [default: .] path to plugin
    
    FLAGS
      -h, --help     Show CLI help.
      -v, --verbose
    
    DESCRIPTION
      Links a plugin into the CLI for development.
    
      Installation of a linked plugin will override a user-installed or core plugin.
    
      e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
      command will override the user-installed or core plugin implementation. This is useful for development work.
    
    EXAMPLES
      $ mycli plugins:link myplugin
    

    See code: src/commands/plugins/link.ts

    mycli plugins:uninstall PLUGIN...

    Removes a plugin from the CLI.

    USAGE
      $ mycli plugins:uninstall PLUGIN...
    
    ARGUMENTS
      PLUGIN  plugin to uninstall
    
    FLAGS
      -h, --help     Show CLI help.
      -v, --verbose
    
    DESCRIPTION
      Removes a plugin from the CLI.
    
    ALIASES
      $ mycli plugins:unlink
      $ mycli plugins:remove
    

    See code: src/commands/plugins/uninstall.ts

    mycli plugins:update

    Update installed plugins.

    USAGE
      $ mycli plugins:update [-h] [-v]
    
    FLAGS
      -h, --help     Show CLI help.
      -v, --verbose
    
    DESCRIPTION
      Update installed plugins.
    

    See code: src/commands/plugins/update.ts

    Keywords

    Install

    npm i @oclif/plugin-plugins

    DownloadsWeekly Downloads

    657,543

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    77.8 kB

    Total Files

    27

    Last publish

    Collaborators

    • anycli-bot
    • rodesp
    • mdonnalley
    • rasphilco
    • dickeyxxx
    • amphro
    • chadian
    • salesforce-releases