Skip to content

Commit c2f4585

Browse files
committed
lots of fixes. now to very win32
1 parent 6aac184 commit c2f4585

File tree

7 files changed

+321
-320
lines changed

7 files changed

+321
-320
lines changed

dist-config.json

Lines changed: 0 additions & 16 deletions
This file was deleted.

gulpfile.js

Lines changed: 46 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
var browserify = require('browserify');
22
var watchify = require('watchify');
3-
var prettyTime = require('pretty-hrtime');
43
var source = require('vinyl-source-stream');
54
var gulp = require('gulp');
65
var gutil = require('gulp-util');
76
var less = require('gulp-less');
87
var jade = require('gulp-jade');
9-
108
var sourcemaps = require('gulp-sourcemaps');
11-
12-
var clui = require('clui');
9+
var buffer = require('vinyl-buffer');
1310
var merge = require('merge-stream');
1411
var shell = require('gulp-shell');
1512
var path = require('path');
@@ -26,7 +23,7 @@ gulp.task('build:electron-installer', ['build:electron'], platform.installer);
2623
var BUILD = 'build/';
2724

2825
// `npm start` calls this.
29-
gulp.task('start', ['build:app', 'build:electron'], function() {
26+
gulp.task('start', ['build:app'], function() {
3027
platform.start();
3128
return gulp.start('watch');
3229
});
@@ -36,70 +33,74 @@ gulp.task('build:release', function() {
3633
return gulp.start('build:app-release');
3734
});
3835

39-
gulp.task('build:app', ['pages', 'less', 'js', 'copy', 'build:npm-install'], function() {});
40-
gulp.task('build:app-release', ['pages', 'less', 'js', 'copy', 'build:npm-install-release'], function() {
36+
gulp.task('build:app', [
37+
'build:electron',
38+
'pages',
39+
'less',
40+
'copy:fonts',
41+
'copy:images',
42+
'copy:electron',
43+
'js:watch'
44+
], function() {
45+
// deletes the `app` folder in electron build
46+
// so `platform:start` can just point the electron renderer at `BUILD`
47+
// and we don't have to do all kinds of crazy copying.
48+
process.env.WATCH_DIRECTORY = path.resolve(__dirname, BUILD);
49+
return del(platform.BUILD);
50+
});
51+
gulp.task('build:app-release', [
52+
'build:electron',
53+
'pages',
54+
'less',
55+
'copy:fonts',
56+
'copy:images',
57+
'copy:electron'
58+
], function() {
4159
return gulp.start('build:electron-installer');
4260
});
4361

44-
// @todo: sourcemaps https://github.com/gulpjs/gulp/blob/master/docs/recipes/fast-browserify-builds-with-watchify.md
45-
gulp.task('js', function() {
46-
return browserify('./src/index.js', {
47-
cache: {},
48-
packageCache: {},
49-
fullPaths: true,
50-
debug: false
51-
})
52-
.transform('jadeify')
53-
.bundle()
62+
var bundler = browserify(pkg.browserify).transform('jadeify');
63+
64+
gulp.task('js', ['build:npm-install-release'], function() {
65+
return bundler.bundle()
5466
.on('error', notify('js'))
5567
.pipe(source('index.js'))
68+
.pipe(buffer())
69+
.pipe(sourcemaps.init({
70+
loadMaps: true
71+
}))
72+
.pipe(sourcemaps.write('./'))
5673
.pipe(gulp.dest(BUILD));
5774
});
5875

59-
gulp.task('watch', ['build:app'], function() {
76+
gulp.task('watch', function() {
6077
gulp.watch(['src/{*,**/*}.less', 'styles/*.less'], ['less']);
6178
gulp.watch(['src/*.jade'], ['pages']);
62-
gulp.watch('images/{*,**/*}', ['copy images']);
63-
gulp.watch('fonts/*', ['copy fonts']);
79+
gulp.watch('images/{*,**/*}', ['copy:images']);
80+
gulp.watch('fonts/*', ['copy:fonts']);
6481
gulp.watch(['main.js', 'src/electron/*'], ['copy:electron']);
6582
gulp.watch('package.json', ['copy:electron', 'build:npm-install']);
83+
});
6684

67-
var spinner = new clui.Spinner('Watching for changes...');
68-
85+
gulp.task('js:watch', ['build:npm-install'], function() {
6986
/**
7087
* Gulp's [fast browserify builds recipe](http://git.io/iiCk-A)
7188
*/
72-
var bundler = watchify(browserify('./src/index.js', {
73-
cache: {},
74-
packageCache: {},
75-
fullPaths: true,
76-
debug: false
77-
}))
78-
.transform('jadeify')
79-
.on('update', rebundle);
80-
var started = false;
81-
82-
function rebundle(changed) {
83-
var start = process.hrtime();
84-
if (changed) {
85-
spinner.stop();
86-
gutil.log('Changed', '\'' + gutil.colors.cyan(changed[1]) + '\'');
89+
var b;
90+
function rebundle(files) {
91+
if (files) {
92+
gutil.log('Changed', '\'' + gutil.colors.cyan(files) + '\'');
8793
gutil.log('Starting', '\'' + gutil.colors.cyan('rebundle') + '\'...');
8894
}
89-
return bundler.bundle()
95+
return b.bundle()
9096
.on('error', notify('js'))
9197
.pipe(source('index.js'))
9298
.pipe(gulp.dest(BUILD))
9399
.on('end', function() {
94-
var time = prettyTime(process.hrtime(start));
95-
gutil.log('Finished', '\'' + gutil.colors.cyan('rebundle') + '\'',
96-
'after', gutil.colors.magenta(time));
97-
spinner.start();
98-
if (!started) {
99-
started = true;
100-
}
100+
gutil.log('Finished', '\'' + gutil.colors.cyan('rebundle') + '\'...');
101101
});
102102
}
103+
b = watchify(bundler).on('update', rebundle);
103104
return rebundle();
104105
});
105106

@@ -122,12 +123,6 @@ gulp.task('pages', function() {
122123
});
123124

124125
// Things that should be copied into `BUILD`.
125-
gulp.task('copy', [
126-
'copy:fonts',
127-
'copy:images',
128-
'copy:electron'
129-
]);
130-
131126
gulp.task('copy:fonts', function() {
132127
return gulp.src(pkg.fonts)
133128
.pipe(gulp.dest(path.join(BUILD, 'fonts')));

main.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
var _ = require('lodash');
21
var server = require('scout-server');
3-
var watch = require('watch');
4-
var tinyLR = require('tiny-lr');
2+
var debug = require('debug')('scout:main');
53

4+
var STATIC = process.env.WATCH_DIRECTORY || __dirname;
5+
debug('pointing scout-server static serving at `%s`', STATIC);
66
server.start({
7-
static: __dirname
7+
static: STATIC
88
});
99

10-
setTimeout(function() {
10+
if (process.env.WATCH_DIRECTORY) {
11+
var watch = require('watch');
12+
var tinyLR = require('tiny-lr');
1113
var NODE_MODULES_REGEX = /node_modules/;
1214
var opts = {
1315
port: 35729,
@@ -16,20 +18,19 @@ setTimeout(function() {
1618

1719
var livereload = tinyLR();
1820
livereload.listen(opts.port, opts.host);
19-
console.log('Watching %s for changes', __dirname);
20-
watch.watchTree(__dirname, {
21+
console.log('Watching %s for changes', STATIC);
22+
watch.watchTree(STATIC, {
2123
filter: function(filename) {
2224
return !NODE_MODULES_REGEX.test(filename);
2325
},
2426
ignoreDotFiles: true
25-
}, _.debounce(function(files) {
27+
}, function(files) {
2628
console.log('File change detected! Sending reload message');
2729
livereload.changed({
2830
body: {
2931
files: files
3032
}
3133
});
32-
}, 300));
33-
}, 500);
34-
34+
});
35+
}
3536
require('./src/electron');

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
"node_modules/octicons/octicons/octicons.{eot,svg,ttf,woff}",
3434
"fonts/*"
3535
],
36+
"browserify": {
37+
"entries": [
38+
"./src/index.js"
39+
]
40+
},
3641
"less": {
3742
"paths": [
3843
"node_modules/font-awesome/less",
@@ -85,9 +90,7 @@
8590
},
8691
"devDependencies": {
8792
"browserify": "^10.2.4",
88-
"clui": "^0.3.1",
8993
"del": "^1.2.0",
90-
"electron-builder": "^2.0.0",
9194
"electron-installer-dmg": "^0.1.0",
9295
"electron-packager": "^5.0.0",
9396
"eslint-config-mongodb-js": "^0.1.4",
@@ -108,7 +111,6 @@
108111
"node-notifier": "^4.2.3",
109112
"phantomjs": "^1.9.17",
110113
"pre-commit": "^1.0.10",
111-
"pretty-hrtime": "^1.0.0",
112114
"stream-combiner2": "^1.0.2",
113115
"vinyl-buffer": "^1.0.0",
114116
"vinyl-source-stream": "^1.1.0",

0 commit comments

Comments
 (0)