Skip to content

Commit 076f3da

Browse files
author
Sebastian Henneberg
committed
providing a real node module, closes #12
1 parent 088e021 commit 076f3da

24 files changed

+462
-311
lines changed

README.md

+14-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,20 @@
22
Boilerplate gulp tasks for quick project setup.
33

44
# Setup
5-
1. Go to your project root
6-
2. `git submodule add https://github.com/ONE-LOGIC/gulp-modular/`
7-
3. Create `gulpfile.js` and `require()` tasks from `gulp-modular/tasks/` (cf. [graFiddle gulpfile.js](https://github.com/GraFiddle/grafiddle/blob/develop/gulpfile.js)). Optionally add composite tasks to the file.
8-
4. Create `gulp_config.js` and define globs and flags required by the gulp-modular tasks (cf. [graFiddle gulp_config.js](https://github.com/GraFiddle/grafiddle/blob/develop/gulp_config.js)).
5+
1. `npm install gulp gulp-modular`
6+
2. Create `gulpfile.js` (cf. [graFiddle gulpfile.js](https://github.com/GraFiddle/grafiddle/blob/develop/gulpfile.js)), require both modules and define tasks and configuration:
7+
8+
```javascript
9+
var gulp = require('gulp');
10+
var modular = require('gulp-modular');
11+
12+
var tasks = ['bower', 'clean', 'compass', 'configScripts', 'connect', 'fonts', ...];
13+
var config = {...};
14+
15+
modular(gulp, tasks, config);
16+
```
17+
18+
Detailed documentation of our best practice workflow and the config object will be added soon.
919

1020
# Tasks
1121

index.js

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
'use strict';
2+
3+
4+
module.exports = function(gulp, tasks, config) {
5+
6+
if (tasks.indexOf('bower') !== -1) {
7+
require('./tasks/bower')(gulp);
8+
}
9+
10+
if (tasks.indexOf('clean') !== -1) {
11+
require('./tasks/clean')(gulp, config.bases.dist);
12+
}
13+
14+
if (tasks.indexOf('compass') !== -1) {
15+
require('./tasks/compass')(gulp, config.app.scss, config.dirname, config.bases.app, config.dist.css);
16+
}
17+
18+
if (tasks.indexOf('configScripts') !== -1) {
19+
require('./tasks/configScripts')(gulp, config.app.config, config.configName, config.dist.js);
20+
}
21+
22+
if (tasks.indexOf('connect') !== -1) {
23+
require('./tasks/connect')(gulp, config.bases.dist, config.port);
24+
}
25+
26+
if (tasks.indexOf('fonts') !== -1) {
27+
require('./tasks/fonts')(gulp, config.debug, config.dist.fonts);
28+
}
29+
30+
if (tasks.indexOf('images') !== -1) {
31+
require('./tasks/images')(gulp, config.app.images, config.dist.images);
32+
}
33+
34+
if (tasks.indexOf('index') !== -1) {
35+
require('./tasks/index')(gulp, config.bases.dist, config.app.index, config.appName);
36+
}
37+
38+
if (tasks.indexOf('jshint') !== -1) {
39+
require('./tasks/jshint')(gulp, config.app.alljs);
40+
}
41+
42+
if (tasks.indexOf('karma') !== -1) {
43+
require('./tasks/karma')(gulp, config.dirname);
44+
}
45+
46+
if (tasks.indexOf('mavenDeploy') !== -1) {
47+
require('./tasks/mavenDeploy')(gulp, config.mavenConfig, config.mavenRepo);
48+
}
49+
50+
if (tasks.indexOf('mavenInstall') !== -1) {
51+
require('./tasks/mavenInstall')(gulp, config.mavenConfig);
52+
}
53+
54+
if (tasks.indexOf('open') !== -1) {
55+
require('./tasks/open')(gulp, config.dist, config.port);
56+
}
57+
58+
if (tasks.indexOf('partials') !== -1) {
59+
require('./tasks/partials')(gulp, config.app.views, config.dist.js, config.templateName);
60+
}
61+
62+
if (tasks.indexOf('protractor') !== -1) {
63+
require('./tasks/protractor')(gulp, config.bases.dist);
64+
}
65+
66+
if (tasks.indexOf('protractor') !== -1) {
67+
require('./tasks/protractor')(gulp, config.bases.dist);
68+
}
69+
70+
if (tasks.indexOf('reload') !== -1) {
71+
require('./tasks/reload')(gulp, config.bases.dist);
72+
}
73+
74+
if (tasks.indexOf('scripts') !== -1) {
75+
require('./tasks/scripts')(gulp, config.app.js, config.dist.js, config.sourceMapsPath);
76+
}
77+
78+
if (tasks.indexOf('statics') !== -1) {
79+
require('./tasks/statics')(gulp, config.app.statics, config.bases.dist);
80+
}
81+
82+
if (tasks.indexOf('vendorScripts') !== -1) {
83+
require('./tasks/vendorScripts')(gulp, config.dist.js, config.sourcemapPath, config.production, config.debug);
84+
}
85+
86+
if (tasks.indexOf('vendorStyles') !== -1) {
87+
require('./tasks/vendorStyles')(gulp, config.dist.css, config.sourceMapsPath, config.debug);
88+
}
89+
90+
if (tasks.indexOf('watch') !== -1) {
91+
require('./tasks/watch')(gulp, config);
92+
}
93+
94+
};

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
{
22
"name": "gulp-modular",
3-
"version": "0.0.2",
3+
"version": "0.0.3",
44
"description": "Boilerplate gulp tasks for quick project setup.",
55
"main": "index.js",
66
"scripts": {
77
"test": "echo \"Error: no test specified\" && exit 1"
88
},
9+
"files": [
10+
"index.js"
11+
],
912
"repository": {
1013
"type": "git",
1114
"url": "https://github.com/ONE-LOGIC/gulp-modular"

tasks/bower.js

+11-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
var gulp = require('gulp'),
2-
bower = require('gulp-bower');
1+
'use strict';
32

3+
var bower = require('gulp-bower');
44

5-
gulp.task('bower:prune', function() {
6-
return bower({cmd: 'prune'});
7-
});
85

9-
gulp.task('bower:install', function() {
10-
return bower();
11-
});
6+
module.exports = function(gulp) {
7+
gulp.task('bower:prune', function() {
8+
return bower({cmd: 'prune'});
9+
});
10+
11+
gulp.task('bower:install', function() {
12+
return bower();
13+
});
14+
};

tasks/clean.js

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
var gulp = require('gulp'),
2-
del = require('del'),
3-
config = require('../../gulp_config');
1+
'use strict';
42

3+
var del = require('del');
54

6-
// remove build (erase dist folder recursively)
7-
gulp.task('clean', function(done) {
8-
del([config.bases.dist], done);
9-
});
5+
6+
module.exports = function(gulp, glob) {
7+
// remove build (erase dist folder and other generated assets recursively)
8+
gulp.task('clean', function(done) {
9+
del([glob], done);
10+
});
11+
};

tasks/compass.js

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
var gulp = require('gulp'),
2-
compass = require('gulp-compass'),
3-
config = require('../../gulp_config');
1+
'use strict';
42

3+
var compass = require('gulp-compass');
54

6-
gulp.task('compass', function(done) {
7-
gulp.src(config.app.scss)
8-
.pipe(compass({
9-
project: config.dirname,
10-
sass: config.bases.app,
11-
css: config.dist.css,
12-
environment: 'production',
13-
sourcemap: true,
14-
debug: false,
15-
logging: false
16-
}));
17-
done();
18-
});
5+
6+
module.exports = function(gulp, src, project, sass, css) {
7+
gulp.task('compass', function(done) {
8+
gulp.src(src)
9+
.pipe(compass({
10+
project: project,
11+
sass: sass,
12+
css: css,
13+
environment: 'production',
14+
sourcemap: true,
15+
debug: false,
16+
logging: false
17+
}));
18+
done();
19+
});
20+
};

tasks/configScripts.js

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
var gulp = require('gulp'),
2-
ngConstant = require('gulp-ng-constant'),
3-
config = require('../../gulp_config');
1+
'use strict';
42

3+
var ngConstant = require('gulp-ng-constant');
54

6-
// JAVASCRIPT PROCESSING
7-
gulp.task('config', function() {
8-
gulp.src(config.app.config)
9-
.pipe(ngConstant({
10-
name: config.configName
11-
}))
12-
.pipe(gulp.dest(config.dist.js));
13-
});
5+
6+
module.exports = function(gulp, config, name, dest) {
7+
gulp.task('configScripts', function() {
8+
gulp.src(config)
9+
.pipe(ngConstant({
10+
name: name
11+
}))
12+
.pipe(gulp.dest(dest));
13+
});
14+
};

tasks/connect.js

+15-13
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
var gulp = require('gulp'),
2-
connect = require('gulp-connect'),
3-
history = require('connect-history-api-fallback'),
4-
config = require('../../gulp_config');
1+
'use strict';
52

3+
var connect = require('gulp-connect'),
4+
history = require('connect-history-api-fallback');
65

7-
gulp.task('connect', ['build'], function() {
8-
connect.server({
9-
root: [config.bases.dist],
10-
port: config.port,
11-
livereload: true,
12-
middleware: function() {
13-
return [history({})];
14-
}
6+
7+
module.exports = function(gulp, root, port) {
8+
gulp.task('connect', ['build'], function() {
9+
connect.server({
10+
root: [root],
11+
port: port,
12+
livereload: true,
13+
middleware: function() {
14+
return [history({})];
15+
}
16+
});
1517
});
16-
});
18+
};

tasks/fonts.js

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
var gulp = require('gulp'),
2-
bowerFiles = require('main-bower-files'),
1+
'use strict';
2+
3+
var bowerFiles = require('main-bower-files'),
34
gulpif = require('gulp-if'),
4-
debug = require('gulp-debug'),
5-
config = require('../../gulp_config');
5+
debug = require('gulp-debug');
66

77

88
var fontsFilter = {
99
filter: /\.(otf|eot|svg|ttf|woff)/i
1010
};
1111

12-
gulp.task('fonts', ['bower:install', 'bower:prune'], function() {
13-
return gulp.src(bowerFiles(fontsFilter))
14-
.pipe(gulpif(config.debug, debug()))
15-
.pipe(gulp.dest(config.dist.fonts));
16-
});
12+
module.exports = function(gulp, debugFlag, dest) {
13+
gulp.task('fonts', ['bower:install', 'bower:prune'], function() {
14+
return gulp.src(bowerFiles(fontsFilter))
15+
.pipe(gulpif(debugFlag, debug()))
16+
.pipe(gulp.dest(dest));
17+
});
18+
};
19+

tasks/images.js

+13-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
var gulp = require('gulp'),
2-
newer = require('gulp-newer'),
1+
'use strict';
2+
3+
var newer = require('gulp-newer'),
34
imagemin = require('gulp-imagemin'),
4-
flatten = require('gulp-flatten'),
5-
config = require('../../gulp_config');
5+
flatten = require('gulp-flatten');
66

77

8-
gulp.task('images', function() {
9-
return gulp.src(config.app.images)
10-
.pipe(newer(config.dist.images))
11-
.pipe(imagemin())
12-
.pipe(flatten())
13-
.pipe(gulp.dest(config.dist.images));
14-
});
8+
module.exports = function(gulp, src, dest) {
9+
gulp.task('images', function() {
10+
return gulp.src(src)
11+
.pipe(newer(dest))
12+
.pipe(imagemin())
13+
.pipe(flatten())
14+
.pipe(gulp.dest(dest));
15+
});
16+
};

0 commit comments

Comments
 (0)