Skip to content

Commit

Permalink
Merge pull request socketio#940 from nus-fboa2016-si/webpack
Browse files Browse the repository at this point in the history
Webpack
  • Loading branch information
rauchg committed Feb 24, 2016
2 parents 5fe7373 + 8725d6e commit b370bea
Show file tree
Hide file tree
Showing 9 changed files with 165 additions and 91 deletions.
8 changes: 0 additions & 8 deletions .zuul.yml

This file was deleted.

26 changes: 5 additions & 21 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,18 @@ REPORTER = dot
build: socket.io.js

socket.io.js: lib/*.js package.json
@./support/browserify.sh > socket.io.js
@./node_modules/.bin/gulp

test:
@if [ "x$(BROWSER_NAME)" = "x" ]; then make test-node; else make test-zuul; fi
@./node_modules/.bin/gulp test

test-node:
@./node_modules/.bin/mocha \
--reporter $(REPORTER) \
--require test/support/server.js \
test/index.js
@./node_modules/.bin/gulp test-node

test-zuul:
@if [ "x$(BROWSER_PLATFORM)" = "x" ]; then \
./node_modules/zuul/bin/zuul \
--browser-name $(BROWSER_NAME) \
--browser-version $(BROWSER_VERSION) \
test/index.js; \
else \
./node_modules/zuul/bin/zuul \
--browser-name $(BROWSER_NAME) \
--browser-version $(BROWSER_VERSION) \
--browser-platform "$(BROWSER_PLATFORM)" \
test/index.js; \
fi
@./node_modules/.bin/gulp test-zuul

test-cov:
@./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- \
--reporter $(REPORTER) \
test/
@./node_modules/.bin/gulp test-cov

.PHONY: test
103 changes: 103 additions & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
const gulp = require('gulp');
const mocha = require('gulp-mocha');
const file = require('gulp-file');
const istanbul = require('gulp-istanbul');
const webpack = require('webpack-stream');
const child = require('child_process');
const help = require("gulp-task-listing");

gulp.task('help', help);

gulp.task('default', ['build']);

////////////////////////////////////////
// BUILDING
////////////////////////////////////////

const BUILD_TARGET_DIR = './';

gulp.task('build', function() {
return gulp.src('lib/*.js')
.pipe(webpack(require('./support/webpack.config.js')))
.pipe(gulp.dest(BUILD_TARGET_DIR));
});


////////////////////////////////////////
// TESTING
////////////////////////////////////////

const REPORTER = 'dot';
const TEST_FILE = "./test/index.js";
const TEST_SUPPORT_SERVER_FILE = "./test/support/server.js";

gulp.task('test', function() {
if (process.env.hasOwnProperty("BROWSER_NAME")) {
return testZuul();
} else {
return testNode();
}
});

gulp.task('test-node', testNode);
gulp.task('test-zuul', testZuul);

// runs zuul through shell process
function testZuul() {
const ZUUL_CMD = "./node_modules/zuul/bin/zuul";
const args = [
"--browser-name",
process.env.BROWSER_NAME,
"--browser-version",
process.env.BROWSER_VERSION
];
if (process.env.hasOwnProperty("BROWSER_PLATFORM")) {
args.push("--browser-platform");
args.push(process.env.BROWSER_PLATFORM);
}
args.push(TEST_FILE);
const zuulChild = child.spawn(ZUUL_CMD, args, { stdio: "inherit" });
zuulChild.on("exit", function (code) { process.exit(code); });
return zuulChild;
}

function testNode() {
const MOCHA_OPTS = {
reporter: REPORTER,
require: [TEST_SUPPORT_SERVER_FILE],
bail: true
};
return gulp.src(TEST_FILE, { read: false })
.pipe(mocha(MOCHA_OPTS))
// following lines to fix gulp-mocha not terminating (see gulp-mocha webpage)
.once("error", function(err) {
console.error(err.stack);
process.exit(1);
})
.once("end", function() {
process.exit();
});
}

gulp.task('istanbul-pre-test', function () {
return gulp.src(['lib/**/*.js'])
// Covering files
.pipe(istanbul())
// Force `require` to return covered files
.pipe(istanbul.hookRequire());
});

gulp.task('test-cov', ['istanbul-pre-test'], function(){
gulp.src(['test/*.js', 'test/support/*.js'])
.pipe(mocha({
reporter: REPORTER
}))
.pipe(istanbul.writeReports())
.once('error', function (err){
console.error(err);
process.exit(1);
})
.once('end', function (){
process.exit();
});
});
13 changes: 11 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,31 @@
"backo2": "1.0.2"
},
"devDependencies": {
"babel-core": "6.4.5",
"babel-loader": "6.2.1",
"babel-preset-es2015": "6.3.13",
"base64-arraybuffer": "0.1.5",
"browserify": "13.0.0",
"concat-stream": "1.5.1",
"derequire": "2.0.3",
"expect.js": "0.3.1",
"gulp": "3.9.0",
"gulp-file": "0.2.0",
"gulp-istanbul": "0.10.3",
"gulp-mocha": "2.2.0",
"gulp-task-listing": "1.0.1",
"has-cors": "1.1.0",
"istanbul": "0.4.2",
"mocha": "2.3.4",
"socket.io": "1.4.5",
"text-blob-builder": "0.0.1",
"uglify-js": "2.6.1",
"webpack-stream": "3.1.0",
"zuul": "3.9.0",
"zuul-builder-webpack": "1.1.0",
"zuul-ngrok": "3.2.0"
},
"scripts": {
"test": "make test"
"test": "gulp test"
},
"contributors": [
{
Expand Down
53 changes: 0 additions & 53 deletions support/browserify.js

This file was deleted.

6 changes: 0 additions & 6 deletions support/browserify.sh

This file was deleted.

34 changes: 34 additions & 0 deletions support/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

module.exports = {
entry: './lib/index.js',
output: {
library: 'io',
libraryTarget: 'umd',
filename: 'socket.io.js'
},
externals: {
global: glob()
},
module: {
loaders: [{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel', // 'babel-loader' is also a legal name to reference
query: {
presets: ['es2015']
}
}]
}
};

/**
* Populates `global`.
*
* @api private
*/

function glob(){
return 'typeof self !== "undefined" ? self : '
+ 'typeof window !== "undefined" ? window : '
+ 'typeof global !== "undefined" ? global : {}';
}
1 change: 0 additions & 1 deletion test/socket.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ describe('socket', function(){
socket.once('pong', function(ms){
expect(pinged).to.be(true);
expect(ms).to.be.a('number');
expect(ms).to.be.greaterThan(0);
socket.disconnect();
done();
});
Expand Down
12 changes: 12 additions & 0 deletions zuul.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

module.exports = {
ui: 'mocha-bdd',
server: './test/support/server.js',
tunnel: {
type: 'ngrok',
authtoken: '6Aw8vTgcG5EvXdQywVvbh_3fMxvd4Q7dcL2caAHAFjV',
proto: 'tcp'
},
builder: 'zuul-builder-webpack',
webpack: require('./support/webpack.config.js')
};

0 comments on commit b370bea

Please sign in to comment.