NodeJS Package Manager

If you use node you may have heard of the Kiwi Package Manager, if not its simply a package management system for node modules. Although development of kiwi is still early, its already 100% usable and available to the community.

Installing Packages (seeds)

Kiwi’s packages aka seeds, are simply tarballs abstracted using the extension “.seed”. Installing the latest version of a specific seed using kiwi is insanely simple:

$ kiwi install haml

This command will resolve the latest version, and install it (and it’s dependencies) for you. Now to install a specific version we can simply pass the version number:

$ kiwi install haml 0.3.0

Kiwi also supports the following operators which can be used in both install-time resolution, as well as the runtime require() method provided by kiwi.

  n/a  Equal to
  =    Equal to
  >    Greater than
  >=   Greater than or equal to
  >~   Greater than or equal to with compatibility (major must match)

So for example, the following command will install any version over 0.2.0, at which point the server will resolve the match.

$ kiwi install haml '> 0.2.0'

Listing Packages

The seeds currently installed can easily be displayed using the list command:

$ kiwi list
  express : 0.9.0 
 markdown : 0.0.1 
     sass : 0.4.0

Removing Packages

Now lets say we hate that version of haml we just downloaded, we can remove the specific version:

$ kiwi uninstall haml 0.3.0

or using the rm alias:

$ kiwi rm haml 0.3.0

Searching For Packages

Searching the kiwi server for seeds is also very easy. With built-in pattern matching you can search for packages from the command-line with ease:

$ kiwi search down
     markdown : 0.0.1 - C markdown implementation by David Parsons (4)
  markdown-js : 0.1.2 - JavaScript implementation of Markdown (0)
     showdown : 1.0.0 - Client-side safe Markdown implementation (5)

Or you can list everything available:

$ kiwi search
...

Updating

Since kiwi’s server has version resolution built in, auto-updating can be done with the update command:

$ kiwi update

Requiring Seeds During Runtime

With kiwi installed you can require(‘kiwi’) and use kiwi’s require() method, which is the same as node’s however accepts an optional version string which is resolved in the same manor mentioned above. However you will want to read the Library Developer Best Practices article in the kiwi wiki.

$ kiwi install haml
$ node-repl
node> require('kiwi').require('haml', '> 0.2.0').render('!!! xml')
'<?xml version="1.0" encoding="utf-8" ?>'

Kiwi REPL (Interactive Console)

When kiwi is executed with no arguments a REPL will be created, allowing you to utilize kiwi commands in it’s own shell.

$ kiwi
kiwi> list
        express : 0.9.0 
           haml : 0.3.0 
       markdown : 0.0.1 
           sass : 0.4.0 
kiwi> rm sass
 uninstall : all versions of sass
kiwi> list
        express : 0.9.0 
           haml : 0.3.0 
       markdown : 0.0.1 
kiwi> install sass
   install : sass
   version : 0.4.0
    create : /Users/tjholowaychuk/.kiwi/current/seeds/sass/0.4.0
     fetch : 0.4.0.seed
    unpack : /Users/tjholowaychuk/.kiwi/current/seeds/sass/0.4.0/sass.seed
    remove : /Users/tjholowaychuk/.kiwi/current/seeds/sass/0.4.0/sass.seed
     check : dependencies
kiwi> list
        express : 0.9.0 
           haml : 0.3.0 
       markdown : 0.0.1 
           sass : 0.4.0

More Kiwi !

Kiwi has many more features, so until next time:

$ kiwi help

or

$ kiwi help name-of-command

Notes

  1. webfront reblogged this from tjholowaychuk
  2. koba789 reblogged this from tjholowaychuk
  3. tjholowaychuk posted this