├── .gitignore ├── .DS_Store ├── cli.js ├── package.json ├── index.js └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-mapper/packify/HEAD/.DS_Store -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var fs = require('fs') 4 | var packer = require('./') 5 | 6 | var args = process.argv.slice(2) 7 | var file = args.slice(0, 1)[0] 8 | 9 | var opts = { 10 | html: fs.readFileSync(file) 11 | } 12 | 13 | opts.args = args.slice(1) 14 | 15 | packer(opts, function(err, packed) { 16 | console.log(packed.toString()) 17 | }) 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "packify", 3 | "version": "1.1.2", 4 | "description": "packs up browserify apps by inlining all assets into one html file", 5 | "main": "index.js", 6 | "bin": "cli.js", 7 | "author": "max ogden", 8 | "license": "BSD", 9 | "dependencies": { 10 | "brfs": "^1.1.1", 11 | "inline-images": "^1.0.1", 12 | "inline-styles": "^1.0.0", 13 | "scriptify": "^0.2.0", 14 | "concat-stream": "^1.4.6" 15 | }, 16 | "devDependencies": {}, 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/maxogden/packify.git" 20 | }, 21 | "bugs": { 22 | "url": "https://github.com/maxogden/packify/issues" 23 | }, 24 | "homepage": "https://github.com/maxogden/packify" 25 | } 26 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var scriptify = require('scriptify') 2 | var styleInliner = require('inline-styles') 3 | var imageInliner = require('inline-images') 4 | var concat = require('concat-stream') 5 | var path = require('path') 6 | var fs = require('fs') 7 | var url = require('url') 8 | 9 | module.exports = function(opts, cb) { 10 | // inline tags 11 | var html = imageInliner(opts.html) 12 | 13 | // inline ` 19 | - `background-image { url(foo.png) }` -> `background-image { url('data:...') }` 20 | 21 | all transformations are handled by dependencies: [inline-images](http://npmjs.org/inline-images), [inline-styles](http://npmjs.org/inline-styles), [imageinliner](https://www.npmjs.org/package/imageinliner) and [scriptify](http://npmjs.org/scriptify) 22 | 23 | notes: 24 | 25 | - `url(foo.png)` inside stylesheets will also get converted to inline data-uris 26 | - only relative URIs will be transformed, e.g. `