Skip to content

Commit 716b284

Browse files
committed
Add bundler
The bundler packages Cucumber.js to be used in web browsers.
1 parent a5a7f19 commit 716b284

File tree

4 files changed

+37
-14
lines changed

4 files changed

+37
-14
lines changed

bundler.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var browserify = require('browserify');
2+
3+
var Bundler = function () {
4+
var requires = [
5+
__dirname + '/node_modules/cucumber-html'
6+
];
7+
8+
var self = browserify({
9+
mount: '/cucumber.js',
10+
require: requires,
11+
ignore: ['./cucumber/cli', 'connect']
12+
});
13+
14+
self.addEntry('underscore.js', {dirname: __dirname+"/node_modules/underscore", target: "/node_modules/underscore"});
15+
self.addEntry('lib/gherkin.js', {dirname: __dirname+"/node_modules/gherkin", target: "/node_modules/gherkin"});
16+
self.addEntry('lib/cucumber.js', {dirname: __dirname, target: "/cucumber"});
17+
self.addEntry('lib/gherkin/lexer/en.js', {dirname: __dirname+"/node_modules/gherkin", target: "/node_modules/gherkin/lexer/en"});
18+
19+
self.prepend('(function(context) {');
20+
if (process.env.DEBUG_LEVEL)
21+
self.append("context.cucumberRequire = require;\n");
22+
self.append("context.Cucumber = require('/cucumber');\ncontext.CucumberHTML = require('cucumber-html/src/main/resources/cucumber/formatter/formatter');\n})(window);");
23+
24+
return self;
25+
};
26+
27+
module.exports = Bundler;

example/example.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(function($) {
22
var CucumberHTMLListener = function($root) {
3-
var CucumberHTML = require('cucumber-html');
3+
var CucumberHTML = window.CucumberHTML;
44
var formatter = new CucumberHTML.DOMFormatter($root);
55

66
formatter.uri('report.feature');
@@ -70,7 +70,7 @@
7070
};
7171

7272
function runFeature() {
73-
var Cucumber = require('./lib/cucumber');
73+
var Cucumber = window.Cucumber;
7474
var supportCode;
7575
var output = $('#output');
7676
var errors = $('#errors');

example/server.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
var connect = require('connect');
2-
var server = connect.createServer();
3-
var browserify = require('browserify');
4-
5-
var port = process.env.PORT || 9797;
6-
var cukeBundle = browserify({
7-
mount: '/cucumber.js',
8-
require: ['cucumber-html', './lib/cucumber', 'gherkin/lib/gherkin/lexer/en'],
9-
ignore: ['./cucumber/cli', 'connect']
10-
});
1+
var connect = require('connect');
2+
var server = connect.createServer();
3+
var port = process.env.PORT || 9797;
4+
var Bundler = require('../bundler');
115

126
server.use(connect.static(__dirname));
13-
server.use(cukeBundle);
7+
8+
var bundler = Bundler();
9+
server.use(bundler);
1410
server.listen(port);
1511

1612
console.log('Accepting connections on port ' + port + '...');

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"gherkin": "2.11.1",
4545
"jasmine-node": "1.0.26",
4646
"connect": "2.3.2",
47-
"browserify": "1.13.2",
47+
"browserify": "1.15.5",
4848
"nopt": "1.0.10",
4949
"underscore": "1.3.3",
5050
"rimraf": "2.0.2",

0 commit comments

Comments
 (0)