67 lines
2 KiB
JavaScript
67 lines
2 KiB
JavaScript
|
|
var PATH = require("path"),
|
|
FS = require("fs"),
|
|
CONNECT = require("connect"),
|
|
BUNDLER = require("sourcemint-platform-nodejs/lib/bundler");
|
|
|
|
|
|
exports.main = function(options) {
|
|
|
|
// Rebuild bundles to get a clean start.
|
|
|
|
console.log("Building fresh bundles from source ...");
|
|
|
|
if (!PATH.existsSync(__dirname + "/dist")) {
|
|
FS.mkdir(__dirname + "/dist", 0755);
|
|
}
|
|
|
|
BUNDLER.bundle(PATH.dirname(__dirname) + "/demo/kitchen-sink", __dirname + "/dist", {
|
|
packageIdHashSeed: "__ACE__",
|
|
forceCompleteBuild: true,
|
|
writeManifest: true
|
|
}).then(function() {
|
|
|
|
console.log("... Done. Bundles will be updated as changes are detected in source files.");
|
|
|
|
var server = CONNECT();
|
|
|
|
server.use(CONNECT.router(function(app) {
|
|
|
|
app.get(/^\/loader.js/, CONNECT.static(PATH.dirname(require.resolve("sourcemint-loader-js/loader.js"))));
|
|
|
|
app.get(/^(\/demo\/kitchen-sink)(\.js)?(\/(.*))?$/, function (req, res) {
|
|
|
|
req.url = req.params[2] || "";
|
|
|
|
BUNDLER.Middleware(PATH.dirname(__dirname) + "/demo/kitchen-sink", __dirname + "/dist", {
|
|
packageIdHashSeed: "__ACE__",
|
|
// TODO: https://github.com/sourcemint/bundler-js/issues/3
|
|
rebuildChanges: false
|
|
}).handle(req, res);
|
|
});
|
|
|
|
app.get(/^\//, function(req, res)
|
|
{
|
|
CONNECT.static(__dirname)(req, res, function()
|
|
{
|
|
res.writeHead(404);
|
|
res.end("Not found!");
|
|
});
|
|
});
|
|
}));
|
|
|
|
server.listen(options.port, "127.0.0.1");
|
|
|
|
console.log("ACE development server running at http://127.0.0.1:" + options.port + "/");
|
|
|
|
}, function(err) {
|
|
console.error(err.stack);
|
|
});
|
|
}
|
|
|
|
if (require.main === module) {
|
|
// TODO: Make configurable via command-line flag.
|
|
exports.main({
|
|
port: 8888
|
|
});
|
|
}
|