Skip to content

Commit

Permalink
update bundling logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Raynos committed Jan 30, 2013
1 parent a11a7ca commit b8d501e
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 25 deletions.
36 changes: 20 additions & 16 deletions bin/browserify-server.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
#!/usr/bin/env node

var argv = require("optimist").argv
, path = require("path")
, fs = require("fs")
, filed = require("filed")
var path = require("path")
var fs = require("fs")
var filed = require("filed")
var process = require("process")
var console = require("console")

, Bundle = require("..")
, Server = require("../server")
, Example = require("../example")
var Bundle = require("..")
var Server = require("../server")
var Example = require("../example")

, help = argv.help || argv.h
, index = argv.index || argv.i
, bundle = argv.bundle || argv.b
, server = argv.server || argv.s
, output = argv.output || argv.o
, port = argv.port || argv.p
, example = argv.example || argv.e
var help = argv.help || argv.h
var index = argv.index || argv.i
var bundle = argv.bundle || argv.b
var server = argv.server || argv.s
var output = argv.output || argv.o
var port = argv.port || argv.p
var example = argv.example || argv.e

argv.debug = argv.debug || argv.d

if (help) {
filed(path.join(__dirname, "usage.txt")).pipe(process.stdout)
} else if (index) {
filed(path.join(__dirname, "index.html")).pipe(process.stdout)
} else if (bundle) {
var data = Bundle(bundle, output)
var data = Bundle(bundle, argv)
fs.writeFileSync(output, data, "utf-8")
console.log("bundled", bundle, "to", output
, "with env", process.env.NODE_ENV)
console.log("bundled", bundle, "to", output, "with env"
, process.env.NODE_ENV)
} else if (server) {
Server(server, port)
} else if (example) {
Expand Down
50 changes: 41 additions & 9 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
var path = require("path")
, fs = require("fs")
, browserify = require("browserify")
var fs = require("fs")
var browserify = require("browserify")
var process = require("process")
var console = require("console")
var less = require("less")
var jade = require("jade")

var NODE_ENV = process.env.NODE_ENV

module.exports = bundle

function bundle(input, options) {
var bundle = createBundle(input, options)

bundle.on("syntaxError", function (err) {
console.error("[BROWSERIFY-SERVER", err)
})

try {
return bundle.bundle()
} catch (err) {
Expand All @@ -15,22 +25,44 @@ function bundle(input, options) {
}

function createBundle(input, options) {
var bundle = browserify({
debug: true
})
var bundle = browserify(options)

bundle.register(".html", handleHtml)
bundle.register(".svg", handleHtml)
bundle.register(".jade", handleJade)
bundle.register(".less", handleLess)

bundle.addEntry(path.join(__dirname, "other.js"), {
body: "process.env.NODE_ENV = '" +
process.env.NODE_ENV + "'\n"
body: "process.env.NODE_ENV = '" + NODE_ENV + "'\n"
})
bundle.addEntry(input, options)
bundle.addEntry(input)

return bundle
}

function handleHtml(file, fileName) {
return "module.exports = '" + file.replace(/\n/g, "\\n") + "'"
return "module.exports = " +
JSON.stringify(file)
}

function handleJade(file, fileName) {
var source = jade.compile(file, {
filename: fileName
})()

return handleHtml(source)
}

function handleLess(file, fileName) {
var _css

less.render(file, function(err, css) {
if (err) {
throw err
}

_css = css
})

return handleHtml(_css)
}

0 comments on commit b8d501e

Please sign in to comment.