Skip to content
A Package Manager for the Sea
JavaScript Shell
Find file
Pull request Compare This branch is 507 commits ahead, 1342 commits behind spmjs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
modules @ 0b74b2a update modules Jun 13, 2012

A Package Manager for SeaJS


First, install node and npm:


$ npm install spm -g


spm install [options] name[@version]

Get all compatible modules in the sea:

$ mkdir libs
$ cd libs
$ spm install all

Only get a specific module:

$ spm install jquery@1.7.2

For more details:

$ spm help install

spm build [options] module

Compress a module file:

$ spm build a.js

Compress and combine to one file with dependencies:

$ spm build a.js --combine

Compress and combine to one file with all dependencies:

$ spm build a.js --combine_all

Remove built files:

$ spm build --clear

You can define build-config.js to specify more information:


module.exports = {
  "base_path": "/path/to/libs/",
  "app_url": "",
  "app_path": "/path/to/app/",
  "loader_config": "path/to/init.js"

For all options, please call:

$ spm help build

For Advanced Users

Auto completion

Add this line:

. /usr/local/lib/node_modules/spm/bin/spm-autocompletion.bash

to your .bash_profile can enable auto completion for spm.

spm transport [--force] transport.js

You can use transport to wrap custom modules:

$ cd path/to/modules
$ mkdir xxx
$ cp jquery/transport.js xxx/
$ vi xxx/transport.js  # modify it
$ spm transport xxx/transport.js

Using npm Programmatically

To use spm from JavaScript, you'd do the following:

var spm = require('spm');

var build = new spm.Build(['a.js', 'b.js'], {
  combine: true
Something went wrong with that request. Please try again.