diff options
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 71 |
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', |