From f0cd569d8abf2772479b804596880d653651bfe2 Mon Sep 17 00:00:00 2001 From: Alex Kern Date: Sat, 5 Sep 2015 23:02:44 -0400 Subject: [PATCH] Migrate to AOT compiled babel. --- .gitignore | 1 + README.md | 2 +- index.js | 7 +------ lib/middleware/javascript.js | 8 +++----- lib/server.js | 7 ++++++- package.json | 26 +++++++++++++++++++------- 6 files changed, 31 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 783a15e..e4fa392 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ node_modules/* .lock-wscript # Compiled assets +dist css/index.css # New Relic diff --git a/README.md b/README.md index 50d53df..01e90f4 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ If you'd like to use [Twilio's STUN/TURN service](https://www.twilio.com/stun-tu $ git clone https://github.com/kern/filepizza.git $ npm install - $ npm start + $ npm run watch FilePizza is an isomorphic React application which uses the Flux application architecture. ES6 features are used liberally and compiled using Babel. Views are rendered on the server, store data is serialized and sent to the client, which then picks up where the server left off. diff --git a/index.js b/index.js index 4a6b650..f064584 100755 --- a/index.js +++ b/index.js @@ -7,9 +7,4 @@ try { // Don't load New Relic if the configuration file doesn't exist. } -require('babel/register')({ - only: new RegExp(__dirname + '/lib' + '|' + - __dirname + '/node_modules/filepizza') -}) - -module.exports = require('./lib/server') +module.exports = require('./dist/server') diff --git a/lib/middleware/javascript.js b/lib/middleware/javascript.js index 831047d..2d648ce 100644 --- a/lib/middleware/javascript.js +++ b/lib/middleware/javascript.js @@ -1,9 +1,7 @@ -var browserify = require('browserify-middleware') -var express = require('express') var path = require('path') var CLIENT_MODULE_PATH = path.resolve(__dirname, '../client.js') -module.exports = browserify(CLIENT_MODULE_PATH, { - transform: 'babelify' -}) +module.exports = function (req, res) { + res.sendFile(CLIENT_MODULE_PATH) +} diff --git a/lib/server.js b/lib/server.js index 9ce8951..fbc74f1 100644 --- a/lib/server.js +++ b/lib/server.js @@ -26,7 +26,12 @@ winston.add(winston.transports.File, { json: false }) -server.listen(process.env.PORT || 3000, function () { +server.on('error', function (err) { + console.error(err.message) + process.exit(1) +}) + +server.listen(process.env.PORT || 3000, function (err) { var host = server.address().address var port = server.address().port console.log('FilePizza listening on %s:%s', host, port) diff --git a/package.json b/package.json index 14d6d49..9433d36 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,17 @@ { "name": "filepizza", - "version": "0.2.0", + "version": "0.2.1", "description": "Free peer-to-peer file transfers in your browser.", - "main": "index.js", "scripts": { + "clean": "rm -rf dist && mkdir -p dist", + "build": "npm run build:server && npm run build:client", + "build:server": "./node_modules/.bin/babel lib -d dist -s inline", + "build:client": "./node_modules/.bin/browserify lib/client.js -t babelify -o dist/client.js -d", + "watch": "./node_modules/.bin/nodemon -w lib --exec 'npm run build && npm run start'", + "publish": "npm run clean && npm run publish:build && npm publish", + "publish:build": "npm run publish:build:server && npm run publish:build:client", + "publish:build:server": "./node_modules/.bin/babel lib -d dist", + "publish:build:client": "./node_modules/.bin/browserify lib/client.js -t babelify -t uglifyify | ./node_modules/.bin/uglifyjs -c > dist/client.js", "start": "node index.js" }, "repository": { @@ -18,10 +26,6 @@ "homepage": "https://github.com/kern/filepizza", "dependencies": { "alt": "^0.14.4", - "babel": "^5.5.8", - "babelify": "^6.1.3", - "browserify": "^11.0.1", - "browserify-middleware": "^7.0.0", "classnames": "^1.2.0", "express": "^4.12.0", "express-winston": "^0.3.1", @@ -46,5 +50,13 @@ "node": "0.12.x" }, "preferGlobal": "true", - "bin": "./index.js" + "bin": "./index.js", + "devDependencies": { + "babel": "^5.8.23", + "babelify": "^6.3.0", + "browserify": "^11.0.1", + "nodemon": "^1.4.1", + "uglify-js": "^2.4.24", + "uglifyify": "^3.0.1" + } }