aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js71
1 files changed, 38 insertions, 33 deletions
diff --git a/gulpfile.js b/gulpfile.js
index 5a3c2478..50eeb028 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -37,38 +37,37 @@ const pkg = require('./package.json');
const minSuffix = '.min';
// Paths
-const root = __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'),
+ sass: path.join(__dirname, 'src/sass/**/*.scss'),
+ js: path.join(__dirname, 'src/js/**/*.js'),
+ sprite: path.join(__dirname, 'src/sprite/*.svg'),
},
// Output paths
- output: path.join(root, 'dist/'),
+ output: path.join(__dirname, 'dist/'),
},
demo: {
// Source paths
src: {
- sass: path.join(root, 'demo/src/sass/**/*.scss'),
- js: path.join(root, 'demo/src/js/**/*.js'),
+ sass: path.join(__dirname, 'demo/src/sass/**/*.scss'),
+ js: path.join(__dirname, 'demo/src/js/**/*.js'),
},
// Output paths
- output: path.join(root, 'demo/dist/'),
+ output: path.join(__dirname, 'demo/dist/'),
// Demo
- root: path.join(root, 'demo/'),
+ root: path.join(__dirname, 'demo/'),
},
upload: [
- path.join(root, `dist/*${minSuffix}.*`),
- path.join(root, 'dist/*.css'),
- path.join(root, 'dist/*.svg'),
- path.join(root, `demo/dist/*${minSuffix}.*`),
- path.join(root, 'demo/dist/*.css'),
+ path.join(__dirname, `dist/*${minSuffix}.*`),
+ path.join(__dirname, 'dist/*.css'),
+ path.join(__dirname, 'dist/*.svg'),
+ path.join(__dirname, `demo/dist/*${minSuffix}.*`),
+ path.join(__dirname, 'demo/dist/*.css'),
],
};
@@ -119,16 +118,19 @@ gulp.task('clean', done => {
const build = {
js(files, bundle, options) {
Object.keys(files).forEach(key => {
- const name = `js:${key}`;
+ const { format } = options;
+ const name = `js:${key}:${format}`;
tasks.js.push(name);
const { output } = paths[bundle];
const polyfill = name.includes('polyfilled');
+ const extension = format === 'es' ? '.mjs' : '.js';
return gulp.task(name, () =>
gulp
.src(bundles[bundle].js[key])
.pipe(sourcemaps.init())
.pipe(concat(key))
+
.pipe(
rollup(
{
@@ -138,9 +140,9 @@ const build = {
),
)
.pipe(header('typeof navigator === "object" && ')) // "Support" SSR (#935)
- .pipe(sourcemaps.write(''))
+ .pipe(rename({ extname: extension }))
.pipe(gulp.dest(output))
- .pipe(filter('**/*.js'))
+ .pipe(filter(`**/*${extension}`))
.pipe(uglify())
.pipe(size(sizeOptions))
.pipe(rename({ suffix: minSuffix }))
@@ -187,13 +189,16 @@ const build = {
.pipe(svgstore())
.pipe(rename({ basename: bundle }))
.pipe(size(sizeOptions))
- .pipe(gulp.dest(paths[bundle].output)),
+ .pipe(gulp.dest(paths[bundle].output))
+ .pipe(gulp.dest(paths.demo.output)),
);
},
};
// Plyr core files
-build.js(bundles.plyr.js, 'plyr', { name: 'Plyr', format: 'umd' });
+const namespace = 'Plyr';
+build.js(bundles.plyr.js, 'plyr', { name: namespace, format: 'umd' });
+build.js(bundles.plyr.js, 'plyr', { name: namespace, format: 'es' });
build.sass(bundles.plyr.sass, 'plyr');
build.sprite('plyr');
@@ -202,22 +207,22 @@ build.sass(bundles.demo.sass, 'demo');
build.js(bundles.demo.js, 'demo', { format: 'iife' });
// Build all JS
-gulp.task('js', () => gulp.parallel(tasks.js));
+gulp.task('js', () => gulp.parallel(...tasks.js));
// Watch for file changes
gulp.task('watch', () => {
// Plyr core
- gulp.watch(paths.plyr.src.js, gulp.parallel(tasks.js));
- gulp.watch(paths.plyr.src.sass, gulp.parallel(tasks.sass));
- gulp.watch(paths.plyr.src.sprite, gulp.parallel(tasks.sprite));
+ gulp.watch(paths.plyr.src.js, gulp.parallel(...tasks.js));
+ gulp.watch(paths.plyr.src.sass, gulp.parallel(...tasks.sass));
+ gulp.watch(paths.plyr.src.sprite, gulp.parallel(...tasks.sprite));
// Demo
- gulp.watch(paths.demo.src.js, gulp.parallel(tasks.js));
- gulp.watch(paths.demo.src.sass, gulp.parallel(tasks.sass));
+ gulp.watch(paths.demo.src.js, gulp.parallel(...tasks.js));
+ gulp.watch(paths.demo.src.sass, gulp.parallel(...tasks.sass));
});
// Build distribution
-gulp.task('build', gulp.series(tasks.clean, gulp.parallel(tasks.js, tasks.sass, tasks.sprite)));
+gulp.task('build', gulp.series(tasks.clean, gulp.parallel(...tasks.js, ...tasks.sass, ...tasks.sprite)));
// Default gulp task
gulp.task('default', gulp.series('build', 'watch'));
@@ -241,7 +246,7 @@ if (Object.keys(credentials).includes('aws') && Object.keys(credentials).include
const branch = {
current: gitbranch.sync(),
master: 'master',
- develop: 'develop',
+ beta: 'beta',
};
const maxAge = 31536000; // 1 year
@@ -253,7 +258,7 @@ if (Object.keys(credentials).includes('aws') && Object.keys(credentials).include
},
},
demo: {
- uploadPath: branch.current === branch.develop ? 'beta/' : null,
+ uploadPath: branch.current === branch.beta ? 'beta/' : null,
headers: {
'Cache-Control': 'no-cache, no-store, must-revalidate, max-age=0',
Vary: 'Accept-Encoding',
@@ -284,7 +289,7 @@ if (Object.keys(credentials).includes('aws') && Object.keys(credentials).include
// Check we're on the correct branch to deploy
const canDeploy = () => {
- const allowed = [branch.master, branch.develop];
+ const allowed = [branch.master, branch.beta];
if (!allowed.includes(branch.current)) {
console.error(`Must be on ${allowed.join(', ')} to publish! (current: ${branch.current})`);
@@ -306,7 +311,7 @@ if (Object.keys(credentials).includes('aws') && Object.keys(credentials).include
const files = ['plyr.js', 'plyr.polyfilled.js', 'config/defaults.js'];
return gulp
- .src(files.map(file => path.join(root, `src/js/${file}`)), { base: '.' })
+ .src(files.map(file => path.join(__dirname, `src/js/${file}`)), { base: '.' })
.pipe(replace(semver, `v${version}`))
.pipe(replace(cdnpath, `${aws.cdn.domain}/${version}/`))
.pipe(gulp.dest('./'));
@@ -382,9 +387,9 @@ if (Object.keys(credentials).includes('aws') && Object.keys(credentials).include
console.log(`Uploading '${version}' demo to ${aws.demo.domain}...`);
// Replace versioned files in readme.md
- gulp.src([`${root}/readme.md`])
+ gulp.src([`${__dirname}/readme.md`])
.pipe(replace(cdnpath, `${aws.cdn.domain}/${version}/`))
- .pipe(gulp.dest(root));
+ .pipe(gulp.dest(__dirname));
// Replace local file paths with remote paths in demo HTML
// e.g. "../dist/plyr.js" to "https://cdn.plyr.io/x.x.x/plyr.js"
@@ -452,7 +457,7 @@ if (Object.keys(credentials).includes('aws') && Object.keys(credentials).include
gulp.series(
'version',
tasks.clean,
- gulp.parallel(tasks.js, tasks.sass, tasks.sprite),
+ gulp.parallel(...tasks.js, ...tasks.sass, ...tasks.sprite),
'cdn',
'demo',
'purge',