|
|
@@ -0,0 +1,97 @@
|
|
|
+const gulp = require('gulp');
|
|
|
+const sourcemaps = require('gulp-sourcemaps');
|
|
|
+const source = require('vinyl-source-stream');
|
|
|
+const buffer = require('vinyl-buffer');
|
|
|
+const browserify = require('browserify');
|
|
|
+const watchify = require('watchify');
|
|
|
+const babelify = require('babelify');
|
|
|
+const pathmod = require('pathmodify');
|
|
|
+const babel = require('gulp-babel');
|
|
|
+const uglify = require('gulp-uglify');
|
|
|
+const gutil = require('gulp-util');
|
|
|
+const zip = require('gulp-zip');
|
|
|
+const fs = require('fs');
|
|
|
+const es = require('event-stream');
|
|
|
+
|
|
|
+// const archiveFiles = [
|
|
|
+// 'style.css',
|
|
|
+// 'screenshot.png',
|
|
|
+// '*.php'
|
|
|
+// ];
|
|
|
+// const builtFiles = [
|
|
|
+// 'js/*'
|
|
|
+// ];
|
|
|
+// const watchedFiles = [
|
|
|
+// 'style.css',
|
|
|
+// 'screenshot.png',
|
|
|
+// '*.php',
|
|
|
+// 'js/*'
|
|
|
+// ];
|
|
|
+
|
|
|
+// const themeName = 'reago';
|
|
|
+
|
|
|
+function buildClient(watch, done) {
|
|
|
+ var bundler =
|
|
|
+ browserify('./src/index.js', { debug: true })
|
|
|
+ .plugin(pathmod, {mods: [
|
|
|
+ pathmod.mod.dir('node_modules', __dirname + '/node_modules'),
|
|
|
+ ]})
|
|
|
+ // Transform JSX https://github.com/andreypopp/reactify/issues/58
|
|
|
+ // Fix unexpected ... https://github.com/babel/babel-loader/issues/170
|
|
|
+ .transform(babelify, { presets: ['es2015', 'stage-0', 'react'] });
|
|
|
+ return new Promise(function (resolve, reject) {
|
|
|
+ bundler.bundle()
|
|
|
+ .on('error', function(err) { console.error(err); this.emit('end'); })
|
|
|
+ .pipe(source('bundle.react.js'))
|
|
|
+ .pipe(buffer())
|
|
|
+ // .pipe(uglify())
|
|
|
+ .pipe(sourcemaps.init({ loadMaps: true }))
|
|
|
+ .pipe(sourcemaps.write('./'))
|
|
|
+ .pipe(gulp.dest('./js'))
|
|
|
+ .on('end', resolve);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// function extractThemeVersion() {
|
|
|
+// return new Promise((resolve, reject) => {
|
|
|
+// fs.readFile(__dirname + '/style.css', (err, buf) => {
|
|
|
+// if(err) return reject(err);
|
|
|
+// const stylesheet = buf.toString();
|
|
|
+// const versionRegex = /Version\: ([0-9\.]+)/g;
|
|
|
+// const matches = versionRegex.exec(stylesheet);
|
|
|
+// themeVersion = matches[1];
|
|
|
+// resolve(themeVersion);
|
|
|
+// });
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+// function makeZip(cb) {
|
|
|
+// return extractThemeVersion()
|
|
|
+// .then(themeVersion => {
|
|
|
+// var base = 'dist/' + themeVersion;
|
|
|
+// var tmp = base + '/reago';
|
|
|
+// var rebasedFiles = base + '/**/*';
|
|
|
+// es.concat(
|
|
|
+// gulp.src(archiveFiles)
|
|
|
+// .pipe(gulp.dest(tmp)),
|
|
|
+// gulp.src(builtFiles)
|
|
|
+// .pipe(gulp.dest( tmp + '/js')),
|
|
|
+// gulp.src(rebasedFiles, { base })
|
|
|
+// .pipe(zip(themeName + '-' + themeVersion + '.zip'))
|
|
|
+// .pipe(gulp.dest('dist'))
|
|
|
+// ).on('end', cb)
|
|
|
+// });
|
|
|
+// }
|
|
|
+
|
|
|
+gulp.task('watch', function() {
|
|
|
+ gulp.watch(['src'], buildClient);
|
|
|
+ // gulp.watch(watchedFiles, makeZip);
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('buildClient', function() {
|
|
|
+ return buildClient();
|
|
|
+});
|
|
|
+
|
|
|
+// gulp.task('makeZip', makeZip);
|
|
|
+
|
|
|
+gulp.task('default', gulp.series('buildClient', 'watch'));
|