mkstack v3.0.0
mkstack
Create and apply your favorite npm stacks.
Install
$ npm install mkstack -gUsage
Create a stack
$ mkstack -c|--create :id
Lets setup a web stack. We need browserify and some other stuff.
$ mkdir ~/new-web-project && cd ~/new-web-project && npm init --yes
$ npm i browserify --save
$ npm i shoe --save --save-exact
$ npm i send --save --save-exact
$ npm i node-sass --save
$ npm i tape --save-dev
$ npm i nodemon --save-dev --save-exactSave it.
$ mkstack -c web
Created webApply stack(s)
$ mkstack -a|--apply :ids [-y|--yarn]
Time for a new web project. Create a new folder and apply the previously saved stack. This will do:
npm i :project --savefor alldependenciesnpm i :project --save-devfor alldevDependencies.
Use -y or --yarn if you want to use yarn instead of npm
$ mkdir ~/next-project && cd ~/next-project && npm init --yes
$ mkstack -a web
Applying web
..If you create your stack abstractions well you can combine them. Perhaps you want a test stack that contains your favorite test modules, e.g. tape, chai, phantomjs etc.
Note that the order of the stacks are important since npm will save package.json each time and update in the order the stacks are applied.
$ mkstack -a web
$ mkstack -a sockets
$ mkstack -a tcp-server
$ mkstack -a irc2
$ mkstack -a consoleOr use a comma separated list. This is more optimal since the dependency configuration will be merged before doing npm install to avoid installing modules multiple times to save time.
$ mkstack -a web,sockets,tcp-server,irc2,console
Applying web,sockets,tcp-server,irc2,console
..List stacks
$ mkstack -l|--list
List your saved stacks with the -l flag. Note that mkstack does not have any opinions on version numbers. It just saves them as you specified them the first time.
$ mkstack -l
{
"web": {
"dependencies": {
"browserify": "^8.1.1",
"node-sass": "^2.0.0-beta",
"send": "0.11.1",
"shoe": "0.0.15"
},
"devDependencies": {
"nodemon": "1.3.2",
"tape": "^3.4.0"
}
}
}Remove stack
$ mkstack --rm :id
$ mkstack --rm web
Removed web
$ mkstack -l
No stacks foundConfig
mkstack uses rc. Default path for current config file is ~/.mkstackrc but that can be changed by using the --config flag:
$ mkstack -c websockets --config ~/path/to/my/stacksLicense
GPL-3.0 © 2018-present Lars-Magnus Skog.