sterno

When app cache works right, this wont be neccessary any more.

npm install sterno
9 downloads in the last week
10 downloads in the last month

sterno

Tired of appcache being broken? Still need to work with offline or packaged apps? I'm here to help.

build status

Example

Create a bootloader.js entry point to tell sterno what your app's origin is and what files you want it to manage:

var sterno = require('sterno');
sterno('http://imlucas.github.io/node-sterno', ['/app.js']);

And create a gulpjs file like:

var gulp = require('gulp'),
  browserify = require('gulp-browserify'),
  githubPages = require('gulp-github-pages'),
  manifest = require('gulp-sterno-manifest');

gulp.task('manifest', function(){
  gulp.src('./.build/**/*')
    .pipe(manifest({
      version: '0.0.1'
    }))
    .pipe(gulp.dest('./.build/sterno-manifest.json'));
});

gulp.task('build', function(){
  gulp.src('./{bootloader,app}.js')
    .pipe(browserify({debug : false}))
    .pipe(gulp.dest('./.build'));

  gulp.src('./app/index.html')
    .pipe(gulp.dest('./.build'));
});

gulp.task('publish', function(){
  gulp.src('./.build/**/*')
    .pipe(githubPages());
});

gulp.task('deploy', ['build', 'manifest', 'publish']);

And a barebones index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>Sterno Demo</title>
  </head>
  <body>
    <script src="bootstrap.js"></script>
  </body>
</html>

When you run gulp deploy you got yourself a stew goin':

  • browserify will build your app.js and bootloader.js into ./.build
  • copy index.html into build
  • generate the manifest file for sterno to use
  • deploy everything to your github pages

When you open your app in chrome, sterno will:

  • phone home for your manifest file
  • download everything in the manifest if it's your first time to the app
  • only download assets that have changed in the manifest
  • if an asset hasn't changed, it will just be served locally

@todo: Actually check-in this example.

Testing

See project on travisci or just run locally if you have phantomjs installed:

npm test

License

MIT

npm loves you