PluginProbe
Customify / 1.5.6
Customify v1.5.6
2.10.9 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.7.1 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.6.0 1.6.0.1 1.6.5 1.7.0 1.7.1 All 77 releases
customify / gulpfile.js

gulpfile.js in Customify 1.5.6, at gulpfile.js

181 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var plugin = 'customify',
2 source_SCSS = 'scss/**/*.scss',
3 dest_CSS = './css/',
4
5 gulp = require('gulp'),
6 sass = require('gulp-sass'),
7 prefix = require('gulp-autoprefixer'),
8 exec = require('gulp-exec'),
9 replace = require('gulp-replace'),
10 minify = require('gulp-minify-css'),
11 concat = require('gulp-concat'),
12 notify = require('gulp-notify'),
13 beautify = require('gulp-beautify'),
14 csscomb = require('gulp-csscomb'),
15 cmq = require('gulp-combine-media-queries'),
16 fs = require('fs'),
17 rtlcss = require('rtlcss'),
18 postcss = require('gulp-postcss'),
19 del = require('del'),
20 rename = require('gulp-rename');
21
22 require('es6-promise').polyfill();
23
24 var jsFiles = [
25 './assets/js/vendor/*.js',
26 './assets/js/main/wrapper_start.js',
27 './assets/js/main/shared_vars.js',
28 './assets/js/modules/*.js',
29 './assets/js/main/main.js',
30 './assets/js/main/functions.js',
31 './assets/js/main/wrapper_end.js'
32 ];
33
34
35 var options = {
36 silent: true,
37 continueOnError: true // default: false
38 };
39
40 // styles related
41 gulp.task('styles-dev', function () {
42 return gulp.src(source_SCSS)
43 .pipe(sass({'sourcemap': false, style: 'compact'}))
44 .on('error', function (e) {
45 console.log(e.message);
46 })
47 .pipe(prefix("last 1 version", "> 1%", "ie 8", "ie 7"))
48 .pipe(gulp.dest(dest_CSS));
49 // .pipe(postcss([
50 // require('rtlcss')({ /* options */ })
51 // ]))
52 // .pipe(rename("rtl.css"))
53 // .pipe(gulp.dest('./'))
54 });
55
56 gulp.task('styles', function () {
57 return gulp.src(source_SCSS)
58 .pipe(sass({'sourcemap': true, style: 'expanded'}))
59 .pipe(prefix("last 1 version", "> 1%", "ie 8", "ie 7"))
60 .pipe(csscomb())
61 .pipe(gulp.dest(dest_CSS, {"mode": "0644"}))
62 });
63
64 gulp.task('styles-watch', function () {
65 return gulp.watch(source_SCSS, ['styles']);
66 });
67
68 // javascript stuff
69 gulp.task('scripts', function () {
70 return gulp.src(jsFiles)
71 .pipe(concat('main.js'))
72 .pipe(beautify({indentSize: 2}))
73 .pipe(gulp.dest('./assets/js/', {"mode": "0644"}));
74 });
75
76 gulp.task('scripts-watch', function () {
77 return gulp.watch(source_SCSS, ['scripts']);
78 });
79
80 gulp.task('watch', function () {
81 gulp.watch(source_SCSS, ['styles-dev']);
82 // gulp.watch('assets/js/**/*.js', ['scripts']);
83 });
84
85 // usually there is a default task for lazy people who just wanna type gulp
86 gulp.task('start', ['styles', 'scripts'], function () {
87 // silence
88 });
89
90 gulp.task('server', ['styles', 'scripts'], function () {
91 console.log('The styles and scripts have been compiled for production! Go and clear the caches!');
92 });
93
94
95 /**
96 * Create a zip archive out of the cleaned folder and delete the folder
97 */
98 gulp.task( 'zip', ['build'], function() {
99
100 return gulp.src( './' )
101 .pipe( exec( 'cd ./../; rm -rf customify.zip; cd ./build/; zip -r -X ./../customify.zip ./customify; cd ./../; rm -rf build' ) );
102
103 } );
104
105 /**
106 * Copy theme folder outside in a build folder, recreate styles before that
107 */
108 gulp.task( 'copy-folder', function() {
109
110 return gulp.src( './' )
111 .pipe( exec( 'rm -Rf ./../build; mkdir -p ./../build/customify; cp -Rf ./* ./../build/customify/' ) );
112 } );
113
114 /**
115 * Clean the folder of unneeded files and folders
116 */
117 gulp.task( 'build', ['copy-folder'], function() {
118
119 // files that should not be present in build zip
120 files_to_remove = [
121 '**/codekit-config.json',
122 'node_modules',
123 'config.rb',
124 'gulpfile.js',
125 'package.json',
126 'pxg.json',
127 'build',
128 '.idea',
129 '**/*.css.map',
130 '**/.git*',
131 '*.sublime-project',
132 '.DS_Store',
133 '**/.DS_Store',
134 '__MACOSX',
135 '**/__MACOSX',
136 '+development.rb',
137 '+production.rb',
138 'README.md',
139 '.labels'
140 ];
141
142 files_to_remove.forEach( function( e, k ) {
143 files_to_remove[k] = '../build/customify/' + e;
144 } );
145
146 return del.sync(files_to_remove, {force: true});
147 } );
148
149 // usually there is a default task for lazy people who just wanna type gulp
150 gulp.task('default', ['start'], function () {
151 // silence
152 });
153
154 /**
155 * Short commands help
156 */
157
158 gulp.task('help', function () {
159
160 var $help = '\nCommands available : \n \n' +
161 '=== General Commands === \n' +
162 'start (default)Compiles all styles and scripts and makes the theme ready to start \n' +
163 'zip Generate the zip archive \n' +
164 'build Generate the build directory with the cleaned theme \n' +
165 'help Print all commands \n' +
166 '=== Style === \n' +
167 'styles Compiles styles in production mode\n' +
168 'styles-dev Compiles styles in development mode \n' +
169 'styles-admin Compiles admin styles \n' +
170 '=== Scripts === \n' +
171 'scripts Concatenate all js scripts \n' +
172 'scripts-dev Concatenate all js scripts \n' +
173 '=== Watchers === \n' +
174 'watch Watches all js and scss files \n' +
175 'styles-watch Watch only styles\n' +
176 'scripts-watch Watch scripts only \n';
177
178 console.log($help);
179
180 });
181