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

View File

@ -3,10 +3,10 @@
<head>
<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';">
<title>Kitematic</title>
</head>
<body>
<script src="index.js"></script>
<script src="Main.js"></script>
</body>
</html>

View File

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

View File

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

View File

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