Skip to content

depjs/dep

Repository files navigation

dep

A little Node.js dependency installer with the bare minimum features for module end-users.

ToDo

Table of Contents

  • Features
  • Usage
  • Concepts
  • Installation
  • Uninstallation
  • Contributing
  • License
  • Features

    • Install the dependencies defined in a local package.json.
    • Lock the dependencies installed in a local node_modules.
    • Run an arbitrary command from scripts in a local package.json.

    dep is trying to have a similar/same interface of the features with npm, but there are some slightly different implementations internally.

    Install

    dep install

    Install all the dependencies defined in a local package.json.

    dep install <package name>(@{version|resource})

    You can install a package as like npm install.

    $ dep install webpack

    dep install --save={dev|prod} <package name>(@{version|resource})

    You can install the package and save it to either dependencies or devDependencies by using --only={dev|prod}.

    $ dep install webpack --save=dev

    dep install --only={dev|prod}

    You can install either only dependencies or devDependencies by using --only={dev|prod}.

    $ dep install --only=prod

    Lock

    dep lock

    ToDo.

    It will follow the spec of npm's package-lock.json.

    Run

    dep run [script] -- <args>

    This command will take the matched key with provided [script] among the scripts field defined in package.json and execute the value.

    $ dep run test

    You also can provide additional arguments by putting --.

    $ dep run build -- dist/bundle.js

    dep run

    If you do not give an arbitrary [script] to dep run, it lists all of the commands from scripts in a local package.json.

    $ dep run
    Available scripts via `dep run`
    
    dep run build:
      webpack src/index.js
    dep run test:
      tap "test/*.js"

    Usage

    $ dep -h
    A little Node.js dependency installer
    
    Commands:
      install  Install dependencies defined in package.json             [aliases: i]
      lock     Lock dependencies installed in node_modules              [aliases: l]
      run      Run an arbitrary command from scripts in package.json    [aliases: r]
    
    Options:
      --help, -h     Show help                                             [boolean]
      --version, -v  Show version information                              [boolean]

    Concepts

    End users

    The target user is always module end-user who makes something with node_modules and doesn't make packages. And the goal of this project is to reproduce most of the features that the end-users use to build their stuff on daily basis.

    Save spaces

    Speed and local disk capacity are a trade-off. To take the both benefits, it would be better to have the cache in somewhere proxy layer instead of local.

    Therefore, dep does not make cache files in a local disc for now.

    Stability

    Stability is a core value. Having a small set makes keeping the green badges easier.

    github-actions

    Installation

    Since dep works independently of npm, dep has a standalone script to install.

    Standalone script

    $ curl -L https://github.com/depjs/dep/raw/master/scripts/install.js | node

    via npm

    $ npm install --global dep

    Uninstallation

    Also for uninstallation.

    Standalone script

    $ curl -L https://github.com/depjs/dep/raw/master/scripts/uninstall.js | node

    via npm

    $ npm uninstall --global dep

    Contributing

    See CONTRIBUTING.md for more info.

    License

    MIT