DailyJS

Seed

Alex R. Young

Subscribe

@dailyjs

Facebook

Google+

server nodejs

Seed

Posted by Alex R. Young on .
Featured

server nodejs

Seed

Posted by Alex R. Young on .

Seed is a commonJS package manager created by Charles Jolley, and is intended to be used as part of a new set of build
tools for SproutCore.

Seed requires Node to work and is installed from
git like this:

git clone git://github.com/seedjs/seed
cd seed
git submodule update --init 
./scripts/install.js
export PATH=~/.seeds/bin:$PATH

This provides the seed command which works a lot like
RubyGems:

seed list --remote
seed install underscore

I've tested it with the current Node in GitHub (6e715b8) and it appears
to work pretty well.

Usage in Scripts

To use Seed, scripts must load seed instead of
node:

#!/usr/bin/env seed

require('module')

The script that replaces node sets up an environment that
transparently loads modules using require().

Package Hosting

Seed supports pushing packages. You need to create an account first:

seed remote signup
seed remote login
seed push ./my-package

Seed's documentation has more information on how to create and manage packages.

Comparison with Kiwi

Kiwi is similar to Seed, but works without a "stub" script:

#!/usr/bin/env node
var kiwi = require('kiwi'),
    sys = require('sys')

kiwi.require('module installed with kiwi')

Another interesting difference is kiwi is built with simple
shell scripts, whereas seed.js is a Node-based project (with a minor
C-extension). That means kiwi install node is possible
without first installing anything else. Seed is much more like a
traditional package manager, although both ultimately do the same
things.