atom-package-deps
    TypeScript icon, indicating that this package has built-in type declarations

    8.0.0 • Public • Published

    Atom-Package-Deps

    Atom-Package-Deps is a module that lets your atom package depend on other atom packages, It's quite simple and shows a nice progress bar as a notification as the packages are installed.

    How it works?

    You need to have an array of package deps in your package manifest, like

    {
      "name": "linter-ruby",
      ...
      "package-deps": [{ "name": "linter" }]
    }

    If only the name of the package is needed, you can specify the name directly as a string instead of an object for that entry:

      "package-deps": ["linter"]

    You can also specify the minimum required version (version not semver-range!) of the package, or give users a choice by specifying multiple ones.

    {
      "name": "linter-ruby",
      ...
      "package-deps": [
        // Add a dependency on a package:
        { "name": "linter", "minimumVersion": "2.0.0" },
        // Add a dependency in any of the following packages,
        // so if one is already installed, user is not prompted to install the other
        [ { "name": "linter" }, { "name": "atom-ide-ui" } ]
      ]
    }

    Because the package installation is async, it returns a promise that resolves when all the dependencies have been installed.

    'use babel'
    
    module.exports = {
      activate() {
        // replace the example argument 'linter-ruby' with the name of this Atom package
        require('atom-package-deps')
          .install('linter-ruby')
          // ^ NOTE: This is the name of YOUR package, NOT the package you want to install.
          .then(function() {
            console.log('All dependencies installed, good to go')
          })
      },
    }

    API

    You can use this package programatically via this exported interface:

    export function install(packageName: string, hideUserPrompt: boolean = false)

    Alternatively, if you want to install dependencies via CLI, this package exposes a bin for that

    Usage: atom-package-deps <directory> <hideUserPrompt = true>
    

    Screenshots

    Installation Prompt

    Installation Prompt with choices:

    Installation Progress

    Installation Complete

    License

    This project is licensed under the terms of MIT license, See the LICENSE file for more info.

    Keywords

    Install

    npm i atom-package-deps

    DownloadsWeekly Downloads

    27,533

    Version

    8.0.0

    License

    MIT

    Unpacked Size

    27.7 kB

    Total Files

    15

    Last publish

    Collaborators

    • steelbrain
    • arcanemagus