mirror of
https://github.com/videojs/video.js.git
synced 2025-01-21 11:02:08 +02:00
a8828cd76d
Refactor of the clean task added docs/api, which didn't happen previously. Re-order when things are generated to work around it. Also, don't show rollup progress on netlify either.
247 lines
5.2 KiB
JavaScript
247 lines
5.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 progressPlugin 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) => {
|
|
// ignore unknow option for --no-progress
|
|
if (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: [
|
|
['@babel/preset-env', {
|
|
loose: true,
|
|
modules: false
|
|
}]
|
|
]
|
|
});
|
|
|
|
const progress = () => {
|
|
if (process.env.TRAVIS || process.env.NETLIFY) {
|
|
return {};
|
|
}
|
|
|
|
return progressPlugin();
|
|
};
|
|
|
|
const globals = {
|
|
browser: {
|
|
'global': 'window',
|
|
'global/window': 'window',
|
|
'global/document': 'document'
|
|
},
|
|
module: {
|
|
},
|
|
test: {
|
|
qunit: 'QUnit',
|
|
qunitjs: 'QUnit',
|
|
sinon: 'sinon'
|
|
}
|
|
};
|
|
|
|
const externals = {
|
|
browser: Object.keys(globals.browser).concat([
|
|
]),
|
|
module: Object.keys(globals.module).concat([
|
|
'global',
|
|
'global/document',
|
|
'global/window',
|
|
'xhr',
|
|
'tsml',
|
|
'safe-json-parse/tuple',
|
|
'videojs-vtt.js',
|
|
'url-toolkit',
|
|
'm3u8-parser',
|
|
'mpd-parser',
|
|
'mux.js',
|
|
'mux.js/lib/mp4',
|
|
'mux.js/lib/tools/ts-inspector.js',
|
|
'mux.js/lib/mp4/probe',
|
|
'aes-decrypter'
|
|
]),
|
|
test: Object.keys(globals.test).concat([
|
|
])
|
|
};
|
|
|
|
export default cliargs => [
|
|
// standard umd file
|
|
{
|
|
input: 'src/js/index.js',
|
|
output: {
|
|
format: 'umd',
|
|
file: 'dist/video.js',
|
|
name: 'videojs',
|
|
strict: false,
|
|
banner,
|
|
globals: globals.browser
|
|
},
|
|
external: externals.browser,
|
|
plugins: [
|
|
alias({
|
|
'video.js': path.resolve(__dirname, './src/js/video.js')
|
|
}),
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {}
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// es, cjs
|
|
{
|
|
input: 'src/js/index.js',
|
|
output: [
|
|
{
|
|
format: 'es',
|
|
file: 'dist/video.es.js',
|
|
strict: false,
|
|
banner,
|
|
globals: globals.module
|
|
}, {
|
|
format: 'cjs',
|
|
file: 'dist/video.cjs.js',
|
|
strict: false,
|
|
banner,
|
|
globals: globals.module
|
|
}
|
|
],
|
|
external: externals.module,
|
|
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() : {}
|
|
],
|
|
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)),
|
|
globals: globals.browser
|
|
},
|
|
external: externals.browser,
|
|
plugins: [
|
|
primedIgnore,
|
|
alias({
|
|
'video.js': path.resolve(__dirname, './src/js/video.js')
|
|
}),
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {}
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// core
|
|
{
|
|
input: 'src/js/video.js',
|
|
output: {
|
|
format: 'cjs',
|
|
file: 'core.js',
|
|
strict: false,
|
|
banner,
|
|
globals: globals.module
|
|
},
|
|
external: externals.module,
|
|
plugins: [
|
|
json(),
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {}
|
|
],
|
|
onwarn,
|
|
watch
|
|
},
|
|
// core umd
|
|
{
|
|
input: 'src/js/video.js',
|
|
output: {
|
|
format: 'umd',
|
|
name: 'videojs',
|
|
file: 'dist/alt/video.core.js',
|
|
strict: false,
|
|
banner,
|
|
globals: globals.browser
|
|
},
|
|
external: externals.browser,
|
|
plugins: [
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {}
|
|
],
|
|
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)),
|
|
globals: globals.browser
|
|
},
|
|
external: externals.browser,
|
|
plugins: [
|
|
primedIgnore,
|
|
primedResolve,
|
|
json(),
|
|
primedCjs,
|
|
primedBabel,
|
|
cliargs.progress !== false ? progress() : {}
|
|
],
|
|
onwarn,
|
|
watch
|
|
}
|
|
];
|