aboutsummaryrefslogtreecommitdiffstats
path: root/tasks/build.js
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/build.js')
-rw-r--r--tasks/build.js270
1 files changed, 135 insertions, 135 deletions
diff --git a/tasks/build.js b/tasks/build.js
index bd801e32..9f1efd4f 100644
--- a/tasks/build.js
+++ b/tasks/build.js
@@ -37,37 +37,37 @@ const minSuffix = '.min';
// Paths
const root = path.join(__dirname, '..');
const paths = {
- plyr: {
- // Source paths
- src: {
- sass: path.join(root, 'src/sass/**/*.scss'),
- js: path.join(root, 'src/js/**/*.js'),
- sprite: path.join(root, 'src/sprite/*.svg'),
- },
-
- // Output paths
- output: path.join(root, 'dist/'),
+ plyr: {
+ // Source paths
+ src: {
+ sass: path.join(root, 'src/sass/**/*.scss'),
+ js: path.join(root, 'src/js/**/*.js'),
+ sprite: path.join(root, 'src/sprite/*.svg'),
},
- demo: {
- // Source paths
- src: {
- sass: path.join(root, 'demo/src/sass/**/*.scss'),
- js: path.join(root, 'demo/src/js/**/*.js'),
- },
-
- // Output paths
- output: path.join(root, 'demo/dist/'),
-
- // Demo
- root: path.join(root, 'demo/'),
+
+ // Output paths
+ output: path.join(root, 'dist/'),
+ },
+ demo: {
+ // Source paths
+ src: {
+ sass: path.join(root, 'demo/src/sass/**/*.scss'),
+ js: path.join(root, 'demo/src/js/**/*.js'),
},
+
+ // Output paths
+ output: path.join(root, 'demo/dist/'),
+
+ // Demo
+ root: path.join(root, 'demo/'),
+ },
};
// Task lists
const tasks = {
- css: [],
- js: [],
- sprite: [],
+ css: [],
+ js: [],
+ sprite: [],
};
// Size plugin
@@ -75,115 +75,115 @@ const sizeOptions = { showFiles: true, gzip: true };
// Clean out /dist
gulp.task('clean', done => {
- const dirs = [paths.plyr.output, paths.demo.output].map(dir => path.join(dir, '**/*'));
+ const dirs = [paths.plyr.output, paths.demo.output].map(dir => path.join(dir, '**/*'));
- // Don't delete the mp4
- dirs.push(`!${path.join(paths.plyr.output, '**/*.mp4')}`);
+ // Don't delete the mp4
+ dirs.push(`!${path.join(paths.plyr.output, '**/*.mp4')}`);
- del(dirs);
+ del(dirs);
- done();
+ done();
});
// JavaScript
Object.entries(build.js).forEach(([filename, entry]) => {
- const { dist, formats, namespace, polyfill, src } = entry;
-
- formats.forEach(format => {
- const name = `js:${filename}:${format}`;
- const extension = format === 'es' ? 'mjs' : 'js';
- tasks.js.push(name);
-
- gulp.task(name, () =>
- gulp
- .src(src)
- .pipe(plumber())
- .pipe(sourcemaps.init())
- .pipe(
- rollup(
- {
- plugins: [
- resolve(),
- commonjs(),
- babel({
- presets: [
- [
- '@babel/env',
- {
- // debug: true,
- useBuiltIns: polyfill ? 'usage' : false,
- corejs: polyfill ? 3 : undefined,
- bugfixes: true,
- },
- ],
- ],
- babelrc: false,
- exclude: [/\/core-js\//],
- }),
- ],
- },
- {
- name: namespace,
- format,
- },
- ),
- )
- .pipe(header('typeof navigator === "object" && ')) // "Support" SSR (#935)
- .pipe(
- rename({
- extname: `.${extension}`,
- }),
- )
- .pipe(gulp.dest(dist))
- .pipe(filter(`**/*.${extension}`))
- .pipe(terser())
- .pipe(rename({ suffix: minSuffix }))
- .pipe(size(sizeOptions))
- .pipe(sourcemaps.write(''))
- .pipe(gulp.dest(dist)),
- );
- });
-});
+ const { dist, formats, namespace, polyfill, src } = entry;
-// CSS
-Object.entries(build.css).forEach(([filename, entry]) => {
- const { dist, src } = entry;
- const name = `css:${filename}`;
- tasks.css.push(name);
+ formats.forEach(format => {
+ const name = `js:${filename}:${format}`;
+ const extension = format === 'es' ? 'mjs' : 'js';
+ tasks.js.push(name);
gulp.task(name, () =>
- gulp
- .src(src)
- .pipe(plumber())
- .pipe(sass())
- .pipe(postcss([customprops(), autoprefixer(), clean()]))
- .pipe(size(sizeOptions))
- .pipe(gulp.dest(dist)),
+ gulp
+ .src(src)
+ .pipe(plumber())
+ .pipe(sourcemaps.init())
+ .pipe(
+ rollup(
+ {
+ plugins: [
+ resolve(),
+ commonjs(),
+ babel({
+ presets: [
+ [
+ '@babel/env',
+ {
+ // debug: true,
+ useBuiltIns: polyfill ? 'usage' : false,
+ corejs: polyfill ? 3 : undefined,
+ bugfixes: true,
+ },
+ ],
+ ],
+ babelrc: false,
+ exclude: [/\/core-js\//],
+ }),
+ ],
+ },
+ {
+ name: namespace,
+ format,
+ },
+ ),
+ )
+ .pipe(header('typeof navigator === "object" && ')) // "Support" SSR (#935)
+ .pipe(
+ rename({
+ extname: `.${extension}`,
+ }),
+ )
+ .pipe(gulp.dest(dist))
+ .pipe(filter(`**/*.${extension}`))
+ .pipe(terser())
+ .pipe(rename({ suffix: minSuffix }))
+ .pipe(size(sizeOptions))
+ .pipe(sourcemaps.write(''))
+ .pipe(gulp.dest(dist)),
);
+ });
+});
+
+// CSS
+Object.entries(build.css).forEach(([filename, entry]) => {
+ const { dist, src } = entry;
+ const name = `css:${filename}`;
+ tasks.css.push(name);
+
+ gulp.task(name, () =>
+ gulp
+ .src(src)
+ .pipe(plumber())
+ .pipe(sass())
+ .pipe(postcss([customprops(), autoprefixer(), clean()]))
+ .pipe(size(sizeOptions))
+ .pipe(gulp.dest(dist)),
+ );
});
// SVG Sprites
Object.entries(build.sprite).forEach(([filename, entry]) => {
- const { dist, src } = entry;
- const name = `sprite:${filename}`;
- tasks.sprite.push(name);
-
- gulp.task(name, () =>
- gulp
- .src(src)
- .pipe(plumber())
- .pipe(
- imagemin([
- imagemin.svgo({
- plugins: [{ removeViewBox: false }],
- }),
- ]),
- )
- .pipe(svgstore())
- .pipe(rename({ basename: path.parse(filename).name }))
- .pipe(size(sizeOptions))
- .pipe(gulp.dest(dist)),
- );
+ const { dist, src } = entry;
+ const name = `sprite:${filename}`;
+ tasks.sprite.push(name);
+
+ gulp.task(name, () =>
+ gulp
+ .src(src)
+ .pipe(plumber())
+ .pipe(
+ imagemin([
+ imagemin.svgo({
+ plugins: [{ removeViewBox: false }],
+ }),
+ ]),
+ )
+ .pipe(svgstore())
+ .pipe(rename({ basename: path.parse(filename).name }))
+ .pipe(size(sizeOptions))
+ .pipe(gulp.dest(dist)),
+ );
});
// Build all tasks
@@ -193,26 +193,26 @@ gulp.task('sprites', gulp.parallel(...tasks.sprite));
// Watch for file changes
gulp.task('watch', () => {
- // Plyr core
- gulp.watch(paths.plyr.src.js, gulp.parallel('js'));
- gulp.watch(paths.plyr.src.sass, gulp.parallel('css'));
- gulp.watch(paths.plyr.src.sprite, gulp.parallel('sprites'));
-
- // Demo
- gulp.watch(paths.demo.src.js, gulp.parallel('js'));
- gulp.watch(paths.demo.src.sass, gulp.parallel('css'));
+ // Plyr core
+ gulp.watch(paths.plyr.src.js, gulp.parallel('js'));
+ gulp.watch(paths.plyr.src.sass, gulp.parallel('css'));
+ gulp.watch(paths.plyr.src.sprite, gulp.parallel('sprites'));
+
+ // Demo
+ gulp.watch(paths.demo.src.js, gulp.parallel('js'));
+ gulp.watch(paths.demo.src.sass, gulp.parallel('css'));
});
// Serve via browser sync
gulp.task('serve', () =>
- browserSync.init({
- server: {
- baseDir: paths.demo.root,
- },
- notify: false,
- watch: true,
- ghostMode: false,
- }),
+ browserSync.init({
+ server: {
+ baseDir: paths.demo.root,
+ },
+ notify: false,
+ watch: true,
+ ghostMode: false,
+ }),
);
// Build distribution