npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cram

v0.8.3

Published

An AMD-compatible build tool.

Downloads

271

Readme

cram.js

Note: cram.js --> RaveJS

We are very excited about RaveJS, the successor to curl.js and cram.js. At its core, rave uses an ES6 Loader, rather than an AMD loader. However, rave can load many types of modules, including AMD. Therefore, rave will work with your application's AMD modules.

Rave's most exciting feature, however, is it's ability to eliminate the drudgery of bootstrapping and maintaining modern, modular web applications. If you've built a non-trivial AMD-based web app, you should be excited about rave, too.

Rave is definitely the future, so we're putting all of our effort into ensuring that RaveJS is as awesome as it can possibly be. Watch these RaveJS github projects to stay up to date:

This means that all development for curl.js and cram.js has stopped. For the foreseeable future, we will continue to respond to issues on github, as well as in the #cujojs room on freenode. However, keep in mind that there will be no further development, so some issues might not be resolved fully.

If you're as excited as we are about the future, consider helping us improve the curl-to-rave migration guide. There are many ways to architect curl+cram-based applications, so your experience migrating your app from curl+cram to rave is extremely valuable to other curl+cram users.

Also, if you are interested in becoming the lead maintainer of curl.js and/or cram.js, please let us know on #cujojs!

cujoJS resource assembler

See the docs/ folder for instructions and useful information.

New! gulp integration via gulp-cram by @bclozel!

Installation

node.js

npm install --save cram

To run cram from any folder:

npm install --global cram

Bower

TBD

Release notes

0.8.3

  • Add deprecation notice.
  • Add links to Rave Starters.
  • Add a link to the migration guide.
  • Update links to gulp-cram and bclozel

0.8.2

  • Fix module parsing code to stop prematurely detecting the end of an AMD define when there are regexp literals inside parentheses.
  • Only declare global define() during bundling to help isolate problems with UMD modules running under node (as with gulp and grunt).
  • Separate argument-parsing code from cramming code so logic to run as a module or as a command-line tool can be done more sanely.

0.8.1

  • Fix logic to detect whether cram is running as an npm task and ensure that the promise returned from the API only resolves once the bundle is created.
  • Stop appending to the cached AST data. It should be overwritten.

0.8.0

  • Add a minimal JavaScript API.
  • Correct regression: --exclude CLI option now works again.
  • Handle when factory args > dependent module ids when simplifying AMD defines. For instance, the curl/loader/cjsm11 cram plugin adds an extra arg now.

0.7.12

  • Stop failing when plugins output more than one define().

0.7.11

  • Fix compile bug that prevented use of css! plugin.
  • Start using when.js 2.x.
  • Fix configuration merging errors when inspecting both html and run.js.

0.7.10

  • Ensure that baseUrl and output are converted to absolute paths so node doesn't try to resolve them using node_modules logic.

0.7.9

  • Bug fix: plugins are now responsible for resolving url/filepath.
  • Bug fix: Normalize r-value require()s when using loaders, too.
  • Bug fix: Infer appRoot from run.js file, not just index.html. Improve logged messages a bit, too.
  • Bug fix: Excluded modules don't get compiled anymore. Force 'curl' and 'curl/_privileged' to be excluded in all cases.

0.7.8

  • AMD modules are now published to npm, so manually running bower is no longer necessary.
  • Failing to supply some AMD configuration properties no longer causes cram.js to throw. (Thanks Blaine!)

0.7.7

  • Lots of fixes to the code that groks html files.
  • Internal refactoring and reorganization

0.7.6

  • Use same logic as curl.js when assigning configuration to modules that may be loaded by a plugin or module loader.
  • Add a legacy loader example.
  • Stop detecting code such as goog.require('id') as a CommonJS-style require('id').

0.7.5

  • Improve support for i18n and CommonJS modules via curl.js 0.8
  • Improve module parsing (fixes some issues with lodash).
  • Parse literal RegExps better.
  • Include simple example apps.
  • Find build override json files without absolute paths.
  • Fix many other minor things.