A webservice that dishes out files from npm packages.
npm-cdn downloads tarballs from the npm registry and stores them on disk. First-time requests for a package are slow because the entire package tarball has to be fetched, but subsequent requests for files in the same package should be pretty fast.
Caveat npmtor: This is a proof of concept app. It works, but it's experimental. It's running on a single Heroku dyno so it won't scale. To become a real thing it will need to sit behind a CDN.
See also unpkg.com, a very similar project.
To access a file inside a published npm package, use the following pattern:
https://npm-cdn.herokuapp.com/{packageName}@{packageVersion}/{filePath}
Examples:
- /dat@6.8.6/img/dat-website.png
- /express@4.10.4/package.json
- /zeke.sikelianos.com@1.0.0/assets/images/hands.png
When a package is downloaded, index files are generated in HTML and JSON format.
- /browserify@8.1.1 renders an HTML page with links to all the files in the package.
- /browserify@8.1.1/?json returns
a JSON array of all the files in the package. You can also set an
application/json
Accept header in the request instead of using thejson
query param.
If you request a package without specifying a version, you'll be redirected to the index for the latest version of the package:
- /lodash redirects to /lodash@2.4.1
npm install
npm test
- findit: walk a directory tree recursively with events
- handlebars: Handlebars provides the power necessary to let you build semantic templates effectively with no frustration
- request: Simplified HTTP request client.
- restify: REST framework
- superagent: elegant & feature rich browser / node HTTP with a fluent API
- tar-fs: filesystem bindings for tar-stream
- mocha: simple, flexible, fun test framework
- nixt: Simple and powerful testing for command-line apps
- nodemon: Simple monitor script for use during development of a node.js app.
- rimraf: A deep deletion module for node (like
rm -rf
) - supertest: Super-agent driven library for testing HTTP servers
ISC
Generated by package-json-to-readme