faster build time

This commit is contained in:
Jeffrey Morgan 2015-02-25 22:51:54 -05:00
parent 57954729a9
commit b9d3d20331
5 changed files with 24 additions and 38 deletions

View File

@ -14,6 +14,7 @@ var runSequence = require('run-sequence');
var shell = require('gulp-shell'); var shell = require('gulp-shell');
var sourcemaps = require('gulp-sourcemaps'); var sourcemaps = require('gulp-sourcemaps');
var packagejson = require('./package.json'); var packagejson = require('./package.json');
var changed = require('gulp-changed');
var dependencies = Object.keys(packagejson.dependencies); var dependencies = Object.keys(packagejson.dependencies);
var isBeta = process.argv.indexOf('--beta') !== -1; var isBeta = process.argv.indexOf('--beta') !== -1;
@ -27,8 +28,7 @@ try {
settings.beta = isBeta; settings.beta = isBeta;
var options = { var options = {
dev: process.argv.indexOf('release') === -1 && process.argv.indexOf('test') === -1, dev: process.argv.indexOf('release') === -1,
test: process.argv.indexOf('test') !== -1,
beta: isBeta, beta: isBeta,
filename: isBeta ? 'Kitematic (Beta).app' : 'Kitematic.app', filename: isBeta ? 'Kitematic (Beta).app' : 'Kitematic.app',
name: isBeta ? 'Kitematic (Beta)' : 'Kitematic', name: isBeta ? 'Kitematic (Beta)' : 'Kitematic',
@ -37,21 +37,22 @@ var options = {
gulp.task('js', function () { gulp.task('js', function () {
return gulp.src('src/**/*.js') return gulp.src('src/**/*.js')
.pipe(gulpif(options.dev, changed('./build')))
.pipe(plumber(function(error) { .pipe(plumber(function(error) {
gutil.log(gutil.colors.red('Error (' + error.plugin + '): ' + error.message)); gutil.log(gutil.colors.red('Error (' + error.plugin + '): ' + error.message));
// emit the end event, to properly end the task
this.emit('end'); this.emit('end');
})) }))
.pipe(gulpif(options.dev || options.test, sourcemaps.init())) .pipe(gulpif(options.dev, sourcemaps.init()))
.pipe(react()) .pipe(react())
.pipe(babel({blacklist: ['regenerator']})) .pipe(babel({blacklist: ['regenerator']}))
.pipe(gulpif(options.dev || options.test, sourcemaps.write('.'))) .pipe(gulpif(options.dev, sourcemaps.write('.')))
.pipe(gulp.dest((options.dev || options.test) ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build')) .pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build'))
.pipe(gulpif(options.dev, livereload())); .pipe(gulpif(options.dev, livereload()));
}); });
gulp.task('images', function() { gulp.task('images', function() {
return gulp.src('images/*') return gulp.src('images/*')
.pipe(gulpif(options.dev, changed('./build')))
.pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build')) .pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build'))
.pipe(gulpif(options.dev, livereload())); .pipe(gulpif(options.dev, livereload()));
}); });
@ -63,6 +64,7 @@ gulp.task('styles', function () {
// emit the end event, to properly end the task // emit the end event, to properly end the task
this.emit('end'); this.emit('end');
})) }))
.pipe(gulpif(options.dev, changed('./build')))
.pipe(gulpif(options.dev, sourcemaps.init())) .pipe(gulpif(options.dev, sourcemaps.init()))
.pipe(less()) .pipe(less())
.pipe(gulpif(options.dev, sourcemaps.write())) .pipe(gulpif(options.dev, sourcemaps.write()))
@ -85,13 +87,14 @@ gulp.task('copy', function () {
.pipe(gulpif(options.dev, livereload())); .pipe(gulpif(options.dev, livereload()));
gulp.src('fonts/**') gulp.src('fonts/**')
.pipe(gulpif(options.dev, changed('./build')))
.pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build')) .pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build'))
.pipe(gulpif(options.dev, livereload())); .pipe(gulpif(options.dev, livereload()));
}); });
gulp.task('dist', function () { gulp.task('dist', function () {
var stream = gulp.src('').pipe(shell([ var stream = gulp.src('').pipe(shell([
'rm -Rf ./dist', 'rm -Rf dist',
'mkdir -p ./dist/osx', 'mkdir -p ./dist/osx',
'cp -R ./cache/Atom.app ./dist/osx/<%= filename %>', 'cp -R ./cache/Atom.app ./dist/osx/<%= filename %>',
'mv ./dist/osx/<%= filename %>/Contents/MacOS/Atom ./dist/osx/<%= filename %>/Contents/MacOS/<%= name %>', 'mv ./dist/osx/<%= filename %>/Contents/MacOS/Atom ./dist/osx/<%= filename %>/Contents/MacOS/<%= name %>',
@ -168,13 +171,12 @@ gulp.task('release', function () {
}); });
gulp.task('default', ['download', 'copy', 'js', 'images', 'styles'], function () { gulp.task('default', ['download', 'copy', 'js', 'images', 'styles'], function () {
gulp.watch('src/**/*.js', ['js']); livereload.listen();
gulp.watch('src/**/*.js', ['js', function () {livereload();}]);
gulp.watch('index.html', ['copy']); gulp.watch('index.html', ['copy']);
gulp.watch('styles/**/*.less', ['styles']); gulp.watch('styles/**/*.less', ['styles']);
gulp.watch('images/**', ['images']); gulp.watch('images/**', ['images']);
livereload.listen();
var env = process.env; var env = process.env;
env.NODE_ENV = 'development'; env.NODE_ENV = 'development';
gulp.src('').pipe(shell(['./cache/Atom.app/Contents/MacOS/Atom .'], { gulp.src('').pipe(shell(['./cache/Atom.app/Contents/MacOS/Atom .'], {

View File

@ -3,10 +3,10 @@
<head> <head>
<link rel="stylesheet" href="main.css"/> <link rel="stylesheet" href="main.css"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' http://localhost:35729; style-src 'self' 'unsafe-inline';"> <meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' http://localhost:35729; style-src 'self' 'unsafe-inline';">
<title>Kitematic</title> <title>Kitematic</title>
</head> </head>
<body> <body>
<script src="index.js"></script> <script src="Main.js"></script>
</body> </body>
</html> </html>

View File

@ -2,7 +2,7 @@
"name": "Kitematic", "name": "Kitematic",
"version": "0.5.1", "version": "0.5.1",
"author": "Kitematic", "author": "Kitematic",
"description": "Simple Docker App management for Mac OS X.", "description": "Simple Docker Container management for Mac OS X.",
"homepage": "https://kitematic.com/", "homepage": "https://kitematic.com/",
"main": "browser/main.js", "main": "browser/main.js",
"repository": { "repository": {
@ -12,7 +12,7 @@
"bugs": "https://github.com/kitematic/kitematic/issues", "bugs": "https://github.com/kitematic/kitematic/issues",
"scripts": { "scripts": {
"start": "gulp", "start": "gulp",
"test": "NODE_PATH=./cache/Atom.app/Contents/Resources/atom/renderer/api/lib:$NODE_PATH jest", "test": "jest",
"release": "gulp release", "release": "gulp release",
"release:beta": "gulp release --beta", "release:beta": "gulp release --beta",
"preinstall": "./deps", "preinstall": "./deps",
@ -64,42 +64,28 @@
"react-router": "^0.11.6", "react-router": "^0.11.6",
"request": "^2.53.0", "request": "^2.53.0",
"request-progress": "^0.3.1", "request-progress": "^0.3.1",
"retina.js": "^1.1.0",
"rimraf": "^2.2.8", "rimraf": "^2.2.8",
"underscore": "^1.7.0" "underscore": "^1.7.0"
}, },
"devDependencies": { "devDependencies": {
"babel": "^4.0.1", "babel": "^4.0.1",
"browserify": "^6.2.0",
"ecstatic": "^0.5.8",
"glob": "^4.0.6",
"gulp": "^3.8.10", "gulp": "^3.8.10",
"gulp-babel": "^4.0.0", "gulp-babel": "^4.0.0",
"gulp-atom": "0.0.5", "gulp-changed": "^1.1.1",
"gulp-concat": "^2.3.4", "gulp-concat": "^2.3.4",
"gulp-cssmin": "^0.1.6", "gulp-cssmin": "^0.1.6",
"gulp-download-atom-shell": "0.0.4", "gulp-download-atom-shell": "0.0.4",
"gulp-if": "^1.2.4", "gulp-if": "^1.2.4",
"gulp-imagemin": "^2.0.0",
"gulp-less": "^2.0.1", "gulp-less": "^2.0.1",
"gulp-livereload": "^2.1.1", "gulp-livereload": "^2.1.1",
"gulp-notify": "^1.4.2",
"gulp-plumber": "^0.6.6", "gulp-plumber": "^0.6.6",
"gulp-react": "^2.0.0", "gulp-react": "^2.0.0",
"gulp-shell": "^0.2.11", "gulp-shell": "^0.2.11",
"gulp-sourcemaps": "^1.2.8", "gulp-sourcemaps": "^1.2.8",
"gulp-streamify": "0.0.5",
"gulp-uglify": "^0.3.1",
"gulp-uglifyjs": "^0.5.0",
"gulp-util": "^3.0.0", "gulp-util": "^3.0.0",
"jest-cli": "^0.2.2", "jest-cli": "^0.2.2",
"merge-stream": "^0.1.7", "jsxhint": "^0.12.1",
"react-tools": "^0.12.2", "react-tools": "^0.12.2",
"reactify": "^0.15.2", "run-sequence": "^1.0.2"
"regenerator": "^0.8.9",
"run-sequence": "^1.0.2",
"time-require": "^0.1.2",
"vinyl-source-stream": "^0.1.1",
"watchify": "^2.1.1"
} }
} }

View File

@ -9,11 +9,14 @@ var router = require('./router');
var boot2docker = require('./boot2docker'); var boot2docker = require('./boot2docker');
var ContainerStore = require('./ContainerStore'); var ContainerStore = require('./ContainerStore');
var SetupStore = require('./SetupStore'); var SetupStore = require('./SetupStore');
var MenuTemplate = require('./MenuTemplate');
var Menu = remote.require('menu');
var metrics = require('./Metrics'); var metrics = require('./Metrics');
var settingsjson; var settingsjson;
var MenuTemplate = require('./MenuTemplate');
var Menu = remote.require('menu');
var menu = Menu.buildFromTemplate(MenuTemplate);
Menu.setApplicationMenu(menu);
try { try {
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8'));
} catch (err) { } catch (err) {
@ -46,9 +49,6 @@ bugsnag.beforeNotify = function(payload) {
payload.url = '<redacted url>'; payload.url = '<redacted url>';
}; };
var menu = Menu.buildFromTemplate(MenuTemplate);
Menu.setApplicationMenu(menu);
document.onkeydown = function (e) { document.onkeydown = function (e) {
e = e || window.event; e = e || window.event;
var doPrevent; var doPrevent;

View File

@ -1,2 +0,0 @@
require.main.paths.splice(0, 0, process.env.NODE_PATH);
require('./Main');