Skip to content

Commit bad60ea

Browse files
committed
Use browserify to bundle jsoneditor, exclude brace lib, fix index.js.
Related to issue josdejong#166.
1 parent 3897a81 commit bad60ea

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

gulpfile.js

+35-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ var mkdirp = require('mkdirp');
88
var webpack = require('webpack');
99
var uglify = require('uglify-js');
1010

11+
var sourcemaps = require('gulp-sourcemaps');
12+
var source = require('vinyl-source-stream');
13+
var buffer = require('vinyl-buffer');
14+
var browserify = require('browserify');
15+
16+
1117
var NAME = 'jsoneditor';
1218
var ENTRY = './src/js/JSONEditor.js';
1319
var HEADER = './src/js/header.js';
@@ -41,6 +47,13 @@ var webpackConfig = {
4147
cache: true
4248
};
4349

50+
var browserifyConfig = {
51+
entries: ENTRY,
52+
paths: ['./src/js'],
53+
external: ['jsonlint', 'brace', 'brace/mode/json', 'brace/ext/searchbox', './ace/theme-jsoneditor'],
54+
bundleExternal: false,
55+
};
56+
4457
var uglifyConfig = {
4558
outSourceMap: NAME + '.map',
4659
output: {
@@ -50,6 +63,8 @@ var uglifyConfig = {
5063

5164
// create a single instance of the compiler to allow caching
5265
var compiler = webpack(webpackConfig);
66+
//var browserify_compiler = browserify(browserifyConfig).external('brace').external('jsonlint').external('brace/mode/json').external('brace/ext/searchbox').external('./ace/theme-jsoneditor');
67+
var browserify_compiler = browserify(browserifyConfig);
5368

5469
// make dist and dist/img folders
5570
gulp.task('mkdir', function () {
@@ -73,6 +88,25 @@ gulp.task('bundle', ['mkdir'], function (done) {
7388
});
7489
});
7590

91+
92+
gulp.task('bundle-browserify', ['mkdir'], function (done) {
93+
browserify_compiler
94+
.bundle()
95+
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
96+
.pipe(source(NAME + '-browserify.js'))
97+
// optional, remove if you dont want sourcemaps
98+
.pipe(buffer())
99+
.pipe(sourcemaps.init({loadMaps: true})) // loads map from browserify file
100+
.pipe(sourcemaps.write('./')) // writes .map file
101+
//
102+
.pipe(gulp.dest(DIST));
103+
104+
gutil.log('bundled ' + NAME + '-browserify.js');
105+
106+
done();
107+
});
108+
109+
76110
// bundle css
77111
gulp.task('bundle-css', ['mkdir'], function () {
78112
gulp.src([
@@ -119,4 +153,4 @@ gulp.task('zip', shell.task([
119153
]));
120154

121155
// The default task (called when you run `gulp`)
122-
gulp.task('default', ['bundle', 'bundle-css', 'copy-img', 'minify']);
156+
gulp.task('default', ['bundle', 'bundle-browserify', 'bundle-css', 'copy-img', 'minify']);

index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
module.exports = require('./src/js/JSONEditor');
1+
module.exports = require('./dist/jsoneditor-browserify.js');

package.json

+4
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,18 @@
2525
"jsonlint": "^1.6.2"
2626
},
2727
"devDependencies": {
28+
"browserify": "^9.0.3",
2829
"gulp": "^3.8.11",
2930
"gulp-concat-css": "^2.0.0",
3031
"gulp-minify-css": "^0.4.5",
3132
"gulp-shell": "^0.3.0",
33+
"gulp-sourcemaps": "^1.5.0",
3234
"gulp-util": "^3.0.3",
3335
"mkdirp": "^0.5.0",
3436
"mocha": "^2.1.0",
3537
"uglify-js": "^2.4.16",
38+
"vinyl-buffer": "^1.0.0",
39+
"vinyl-source-stream": "^1.1.0",
3640
"webpack": "^1.5.3"
3741
}
3842
}

0 commit comments

Comments
 (0)