PluginProbe
Customify / 1.2.5
Customify v1.2.5
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.2.5, at gulpfile.js

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