mirror of
https://github.com/videojs/video.js.git
synced 2024-11-28 08:58:46 +02:00
197 lines
4.2 KiB
JavaScript
197 lines
4.2 KiB
JavaScript
import path from 'path';
|
|
import fs from 'fs';
|
|
import babel from 'rollup-plugin-babel';
|
|
import resolve from 'rollup-plugin-node-resolve';
|
|
import commonjs from 'rollup-plugin-commonjs';
|
|
import json from 'rollup-plugin-json';
|
|
import filesize from 'rollup-plugin-filesize';
|
|
import progress from 'rollup-plugin-progress';
|
|
import ignore from 'rollup-plugin-ignore';
|
|
import alias from 'rollup-plugin-alias';
|
|
import _ from 'lodash';
|
|
import pkg from './package.json';
|
|
|
|
const compiledLicense = _.template(fs.readFileSync('./build/license-header.txt', 'utf8'));
|
|
const bannerData = _.pick(pkg, ['version', 'copyright']);
|
|
const banner = compiledLicense(Object.assign({includesVtt: true}, bannerData));
|
|
|
|
const watch = {
|
|
clearScreen: false
|
|
};
|
|
|
|
const onwarn = (warning) => {
|
|
if (warning.code === 'UNUSED_EXTERNAL_IMPORT' ||
|
|
warning.code === 'UNRESOLVED_IMPORT' ||
|
|
(warning.code === 'UNKNOWN_OPTION' &&
|
|
warning.message.indexOf('progress') !== -1)) {
|
|
return;
|
|
}
|
|
|
|
// eslint-disable-next-line no-console
|
|
console.warn(warning.message);
|
|
};
|
|
|
|
const primedIgnore = ignore(['videojs-vtt.js']);
|
|
const primedResolve = resolve({
|
|
jsnext: true,
|
|
main: true,
|
|
browser: true
|
|
});
|
|
const primedCjs = commonjs({
|
|
sourceMap: false
|
|
});
|
|
const primedBabel = babel({
|
|
babelrc: false,
|
|
exclude: 'node_modules/**(!http-streaming)',
|
|
compact: false,
|
|
presets: [
|
|
['es2015', {
|
|
loose: true,
|
|
modules: false
|
|
}]
|
|
],
|
|
plugins: ['external-helpers']
|
|
});
|
|
|
|
export default cliargs => [
|
|
// standard umd file
|
|
{
|
|
input: 'src/js/index.js',
|
|
output: {
|
|
format: 'umd',
|
|
file: 'dist/video.js',
|
|
name: 'videojs',
|
|
strict: false,
|
|
banner
|
|
},
|
|
plugins: [
|
|
alias({
|
|
'video.js': path.resolve(__dirname, './src/js/video.js')
|
|
}),
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {},
|
|
filesize()
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// es, cjs
|
|
{
|
|
input: 'src/js/index.js',
|
|
output: [
|
|
{
|
|
format: 'es',
|
|
file: 'dist/video.es.js',
|
|
strict: false,
|
|
banner
|
|
}, {
|
|
format: 'cjs',
|
|
file: 'dist/video.cjs.js',
|
|
strict: false,
|
|
banner
|
|
}
|
|
],
|
|
plugins: [
|
|
alias({
|
|
'video.js': path.resolve(__dirname, './src/js/video.js'),
|
|
'@videojs/http-streaming': path.resolve(__dirname, './node_modules/@videojs/http-streaming/dist/videojs-http-streaming.es.js')
|
|
}),
|
|
json(),
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {},
|
|
filesize()
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// novtt umd
|
|
{
|
|
input: 'src/js/index.js',
|
|
output: {
|
|
format: 'umd',
|
|
file: 'dist/alt/video.novtt.js',
|
|
name: 'videojs',
|
|
strict: false,
|
|
banner: compiledLicense(Object.assign({includesVtt: true}, bannerData))
|
|
},
|
|
plugins: [
|
|
primedIgnore,
|
|
alias({
|
|
'video.js': path.resolve(__dirname, './src/js/video.js')
|
|
}),
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {},
|
|
filesize()
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// core
|
|
{
|
|
input: 'src/js/video.js',
|
|
output: {
|
|
format: 'cjs',
|
|
file: 'core.js',
|
|
strict: false,
|
|
banner
|
|
},
|
|
plugins: [
|
|
json(),
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {},
|
|
filesize()
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// core umd
|
|
{
|
|
input: 'src/js/video.js',
|
|
output: {
|
|
format: 'umd',
|
|
name: 'videojs',
|
|
file: 'dist/alt/video.core.js',
|
|
strict: false,
|
|
banner
|
|
},
|
|
plugins: [
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {},
|
|
filesize()
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// core novtt umd
|
|
{
|
|
input: 'src/js/video.js',
|
|
output: {
|
|
format: 'umd',
|
|
name: 'videojs',
|
|
file: 'dist/alt/video.core.novtt.js',
|
|
strict: false,
|
|
banner: compiledLicense(Object.assign({includesVtt: true}, bannerData))
|
|
},
|
|
plugins: [
|
|
primedIgnore,
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {},
|
|
filesize()
|
|
],
|
|
onwarn,
|
|
watch
|
|
}
|
|
];
|