stockpile

Stockpile is the airplane mode for your application. Automatically cache and serve common JavaScript libraries or any kind of file from your development machine.

npm install stockpile
2 downloads in the last month

Stockpile

Build Status

Stockpile is the airplane mode for your application. Automatically cache and then serve common JavaScript libraries or any kind of file from your development machine. Why? Because localhost is always faster and because being able to code without an internet connection is still kind of useful sometimes.

Stockpile comes in two flavors, each express.js HTTP servers, so they're easily attached to any existing application. You can also use it standalone, though the stockpile command-line interface. Lastly, Stockpile is packaged together with Draughtsman, a web server that aids in front-end prototyping and development.

Stockpile will keep files cached indefinitely so don't use it for files that change often. Stockpile does not understand HTTP cache or expires headers.

Install with npm install stockpile.

The cache servers

Generic server

The servers.cache server will fetch and then immediately cache anything you ask of it. For example:

http://localhost:3500/?url=http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js

JavaScript library server

This server provides a shortcut for quickly fetching and then serving cached versions of common JavaScript libraries. Anything that's not already in its cache, it will fetch from CloudFlare's CDNJS content delivery network. Here's an example that's equivalent to the first one:

http://localhost:3500/jquery/1.7.1/jquery.min.js

API

For now, read the code. (All 80 lines!)

CLI

# serve both Stockpile caches on your local machine
stockpile serve <port:3500>
# clean the cache
stockpile clean
# find the location of your cache
stockpile where
# figure out the paths to popular libraries on public CDNs
# and on the Stockpile localhost.
stockpile find <semver>

E.g. stockpile find underscore.js@1.3.3 will return

Stockpile: 
    underscore.js/1.3.3/underscore-min.js
CDN: 
    http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js

So you know you can find Underscore.js through Stockpile at http://localhost:3500/underscore.js/1.3.3/underscore-min.js

npm loves you