depA little Node.js dependency installer
dep
A little Node.js dependency installer with the bare minimum features for module end-users.
ToDo
- Follow the spec of npm's package-lock.json
Table of Contents
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.
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.