PluginProbe
FV Player 8 / trunk
FV Player 8 vtrunk
trunk 8.0.18 8.0.19 8.0.20 8.0.21 8.0.25 8.0.27 8.1 8.1.3
fv-player / gulpfile.js

gulpfile.js in FV Player 8 trunk, at gulpfile.js

111 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* eslint-env es6 */
2 /* eslint-disable */
3
4 const { src, series, parallel, dest, watch } = require('gulp');
5 const babel = require('gulp-babel'); // es6 -> es5
6 const uglify = require('gulp-uglify'); // js minify
7 const concat = require('gulp-concat'); // concat to single file
8 const rename = require("gulp-rename"); // rename files
9 const autoprefixer = require( 'gulp-autoprefixer' ); // css prefixing
10 const cleanCSS = require('gulp-clean-css'); // minify css
11 const wpPot = require('gulp-wp-pot'); // for generating the .pot file.
12 const sort = require('gulp-sort'); // recommended to prevent unnecessary changes in pot-file.
13 const zip = require('gulp-zip'); // zip project
14
15 // project
16 const projectZipFile = 'fv-player.zip';
17
18 // translation
19 const team = 'foliovision'
20 const textDomain = 'fv-player';
21 const package = 'fv-wordpress-flowplayer';
22 const translationFile = 'fv-player.pot';
23 const bugReport = 'https://foliovision.com/support';
24
25 // files to check
26 // const cssFrotend = ['./css/flowplayer.css', './css/fancybox.css', './css/lightbox.css', './css/colorbox.css'];
27 // const cssAdmin = ['./css/admin.css', './css/s3-browser.css', './css/s3-uploader.css'];
28 const freedomPlayerCSS = ['./css/skin.css', './css/fv-player-additions.css'];
29 const modulesJs = ['./freedom-video-player/modules/fv-player.js', './freedom-video-player/modules/*.module.js'];
30 const youtubeJS = './freedom-video-player/fv-player-youtube.dev.js';
31 const dashJS = './freedom-video-player/fv-player-dashjs.dev.js';
32 const loaderJS = './freedom-video-player/fv-player-loader.dev.js'
33 const projectPHPWatchFiles = ['*.php', './controller/**/*.php', './models/**/*.php', './view/**/*.php'];
34
35 // concat js files + uglify
36 function jsModulesMinify() {
37 return src(modulesJs)
38 .pipe(babel({"presets": [
39 ["@babel/preset-env", {"modules": false} ]
40 ]}))
41 .pipe(concat('fv-player.min.js'))
42 .pipe(uglify({ compress: { loops: false }, mangle: true}).on('error', console.error))
43 .pipe(dest('./freedom-video-player/')
44 );
45 }
46
47 function jsFilessMinify() {
48 return src([dashJS, youtubeJS, loaderJS])
49 .pipe(babel({"presets": [
50 ["@babel/preset-env", {"modules": false} ]
51 ]}))
52 .pipe(uglify({ compress: { loops: false }, mangle: true}).on('error', console.error))
53 .pipe(rename(function (path) {
54 path.basename = path.basename.replace(/\.dev/, '');
55 path.extname = ".min.js";
56 }))
57 .pipe(dest('./freedom-video-player/')
58 );
59 }
60
61 function cssFreedomPlayer() {
62 return src(freedomPlayerCSS)
63 .pipe(concat('fv-player.min.css'))
64 .pipe(autoprefixer())
65 .pipe(cleanCSS())
66 .pipe(dest('./css/'));
67 }
68
69 // generate .pot file
70 function potFileGenerate() {
71 return src(projectPHPWatchFiles)
72 .pipe(sort())
73 .pipe(wpPot( {
74 domain: textDomain,
75 package: package,
76 bugReport: bugReport,
77 lastTranslator: "",
78 team: team,
79 headers: false
80 } ))
81 .pipe(dest('./languages/' + translationFile ))
82 }
83
84 // compresss plugin into zip file , exclude using !
85 function zipProject() {
86 return src([
87 "**/*",
88 "!node_modules{,/**}",
89 // "!vendor{,/**}", // keep vendor
90 "!test{,**}",
91 "!.*",
92 "!gulpfile.js",
93 "!package.json",
94 "!package-lock.json",
95 "!composer.json",
96 "!composer.lock"
97 ])
98 .pipe(zip(projectZipFile))
99 .pipe(dest('./dist'));
100 };
101
102 // export tasks
103 exports.zip = zipProject;
104 exports.pot = potFileGenerate;
105 exports.css = cssFreedomPlayer;
106 exports.jsmodules = jsModulesMinify;
107 exports.jsfiles = jsFilessMinify;
108 exports.js = parallel( jsModulesMinify, jsFilessMinify );
109
110 exports.default = parallel(jsModulesMinify, jsFilessMinify, cssFreedomPlayer, potFileGenerate);
111