Skip to content

Commit adde38b

Browse files
Merge pull request #192 from ekonstantinidis/gulp-again
Hello Gulp (again)
2 parents 01d7ab2 + 4301da1 commit adde38b

File tree

8 files changed

+92
-86
lines changed

8 files changed

+92
-86
lines changed

.travis.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ cache:
1010
install:
1111
- npm install
1212

13+
before_script:
14+
- npm run build
15+
1316
script:
1417
- npm test
1518

gulpfile.js

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
var assign = require('lodash.assign');
2+
var babelify = require('babelify');
3+
var browserify = require('browserify');
4+
var buffer = require('vinyl-buffer');
5+
var gulp = require('gulp');
6+
var gutil = require('gulp-util');
7+
var sass = require('gulp-sass');
8+
var source = require('vinyl-source-stream');
9+
var uglify = require('gulp-uglify');
10+
var watchify = require('watchify');
11+
12+
var options = {
13+
browserifyOpts: {
14+
entries: './src/js/app.js',
15+
debug: true
16+
},
17+
jsDest: 'dist/js'
18+
};
19+
20+
var bundler = browserify(options.browserifyOpts);
21+
22+
gulp.task('build:js', function () {
23+
return bundler
24+
.transform(babelify)
25+
.bundle()
26+
.pipe(source('app.js'))
27+
.pipe(buffer())
28+
.pipe(uglify())
29+
.pipe(gulp.dest(options.jsDest));
30+
});
31+
32+
gulp.task('watch:js', function () {
33+
var watcherOpts = assign({}, watchify.args, options.browserifyOpts);
34+
var watcher = watchify(browserify(watcherOpts)).transform(babelify);
35+
36+
function bundle() {
37+
return watcher
38+
.bundle()
39+
// log errors if they happen
40+
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
41+
.pipe(source('app.js'))
42+
.pipe(buffer())
43+
.pipe(gulp.dest(options.jsDest));
44+
}
45+
46+
watcher.on('update', bundle); // on any dep update, runs the bundler
47+
watcher.on('log', gutil.log); // output build logs to terminal
48+
49+
return bundle();
50+
});
51+
52+
gulp.task('build:scss', function () {
53+
return gulp.src('./src/scss/app.scss')
54+
.pipe(sass().on('error', sass.logError))
55+
.pipe(gulp.dest('./dist/css'));
56+
});
57+
58+
gulp.task('watch:scss', function () {
59+
gulp.watch('./src/scss/app.scss', ['build:scss']);
60+
});
61+
62+
gulp.task('copy:fonts', function () {
63+
return gulp.src([
64+
'./node_modules/font-awesome/fonts/*.+(eot|svg|ttf|woff|woff2|otf)',
65+
'./node_modules/octicons/octicons/*.+(ttf|eot|svg|ttf|woff)',
66+
])
67+
.pipe(gulp.dest('./dist/fonts'));
68+
});
69+
70+
gulp.task('build', ['copy:fonts', 'build:js', 'build:scss']);
71+
gulp.task('watch', ['watch:js', 'watch:scss']);
72+
gulp.task('default', ['build']);

index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
<meta charset="utf-8">
66
<meta http-equiv="X-UA-Compatible" content="IE=edge">
77
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<link href="dist/css/app.css" rel="stylesheet">
89
</head>
910

1011
<body>
1112
<div id="gitify"></div>
1213
</body>
1314

14-
<script src="dist/app.js"></script>
15+
<script src="dist/js/app.js"></script>
1516

1617
<script>
1718
// Disable zoom

package.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
"description": "GitHub Notifications on your menu bar.",
55
"main": "main.js",
66
"scripts": {
7-
"build": "webpack",
8-
"watch": "webpack --progress --colors --watch",
9-
"release-js": "webpack --config webpack.rel.config.js",
7+
"build": "gulp build",
8+
"watch": "gulp watch",
109
"package": "electron-packager . Gitify --overwrite --platform=darwin --arch=x64 --version=1.0.2 --asar=true --icon=images/app-icon.icns --prune --ignore='src' --ignore='coverage'",
1110
"codesign": "bash scripts/codesign.bash",
12-
"dist": "npm run release-js && npm run package && npm run codesign",
11+
"dist": "npm run build && npm run package && npm run codesign",
1312
"lint-js": "eslint 'src/js/' 'src/js/app.js' 'main.js'",
1413
"lint-sass": "sass-lint -c .sass-lint.yml -v -q",
1514
"mocha": "mocha --opts src/js/__tests__/__helpers__/mocha.opts",
@@ -78,30 +77,32 @@
7877
"babel-cli": "=6.8.0",
7978
"babel-core": "=6.8.0",
8079
"babel-eslint": "=6.0.4",
81-
"babel-loader": "=6.2.4",
8280
"babel-preset-es2015": "=6.6.0",
8381
"babel-preset-react": "=6.5.0",
8482
"babel-preset-stage-0": "=6.5.0",
83+
"babelify": "=7.3.0",
84+
"browserify": "=13.0.1",
8585
"chai": "=3.5.0",
86-
"css-loader": "=0.23.1",
8786
"electron-packager": "=7.0.1",
8887
"electron-prebuilt": "=1.0.2",
8988
"enzyme": "=2.3.0",
9089
"eslint": "=2.9.0",
9190
"eslint-plugin-react": "=5.1.1",
92-
"file-loader": "=0.8.5",
91+
"gulp": "=3.9.1",
92+
"gulp-sass": "=2.3.1",
93+
"gulp-uglify": "=1.5.3",
94+
"gulp-util": "=3.0.7",
9395
"istanbul": "=1.0.0-alpha.2",
9496
"jsdom": "=9.0.0",
95-
"json-loader": "=0.5.4",
97+
"lodash.assign": "=4.0.9",
9698
"mocha": "=2.4.5",
9799
"nock": "=8.0.0",
98-
"node-sass": "=3.7.0",
99100
"redux-mock-store": "=1.0.2",
100101
"sass-lint": "=1.7.0",
101-
"sass-loader": "=3.2.0",
102102
"sinon": "=1.17.4",
103103
"sinon-chai": "=2.8.0",
104-
"style-loader": "=0.13.1",
105-
"webpack": "=1.13.0"
104+
"vinyl-buffer": "=1.0.0",
105+
"vinyl-source-stream": "=1.1.0",
106+
"watchify": "=3.7.0"
106107
}
107108
}

src/js/app.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
// Load Styles
2-
import '../scss/app.scss';
3-
41
import React from 'react'; // eslint-disable-line
52
import ReactDOM from 'react-dom';
63
import { Provider } from 'react-redux';

src/scss/app.scss

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
/* @group Colors */
99

10-
$theme-primary: #3893C6;
11-
1210
$theme-black: #262626;
1311
$theme-green: #5EBA7D;
1412

@@ -22,10 +20,10 @@ $error-color: #DB423C;
2220

2321
/* @group Fonts Overrides */
2422

25-
$fa-font-path: "../../node_modules/font-awesome/fonts";
23+
$fa-font-path: "../fonts";
2624
@import "node_modules/font-awesome/scss/font-awesome.scss";
2725

28-
$octicons-font-path: "../../node_modules/octicons/octicons";
26+
$octicons-font-path: "../fonts";
2927
@import "node_modules/octicons/octicons/octicons.scss";
3028

3129

webpack.config.js

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

webpack.rel.config.js

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

0 commit comments

Comments
 (0)