first commit
This commit is contained in:
205
node_modules/lottie-web/rollup.config.js
generated
vendored
Normal file
205
node_modules/lottie-web/rollup.config.js
generated
vendored
Normal file
@@ -0,0 +1,205 @@
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import { terser } from 'rollup-plugin-terser';
|
||||
import babel from '@rollup/plugin-babel';
|
||||
import {version} from './package.json'
|
||||
|
||||
const injectVersion = (options = {}) => {
|
||||
return {
|
||||
name: 'inject-version',
|
||||
renderChunk: (code) => {
|
||||
return code.replace('[[BM_VERSION]]', version)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const addNavigatorValidation = (options = {}) => {
|
||||
return {
|
||||
name: 'inject-version',
|
||||
renderChunk: (code) => {
|
||||
return '(typeof navigator !== "undefined") && ' + code
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const noTreeShakingForStandalonePlugin = () => {
|
||||
return {
|
||||
name: 'no-treeshaking-for-standalone',
|
||||
transform(code) {
|
||||
// This is very fast but can produce lots of false positives.
|
||||
// Use a good regular expression or parse an AST and analyze scoping to improve as needed.
|
||||
if (code.indexOf('__[STANDALONE]__') >= 0) return {moduleSideEffects: 'no-treeshake'};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const destinationBuildFolder = 'build/player/';
|
||||
|
||||
const builds = [
|
||||
{
|
||||
input: 'player/js/modules/full.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/full.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/svg_light.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_light.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/svg_light.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_light.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/svg.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_svg.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/svg.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_svg.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/canvas.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_canvas.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/canvas_light.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_light_canvas.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/canvas_light.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_light_canvas.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/canvas.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_canvas.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/html_light.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_light_html.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/html_light.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_light_html.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/html.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_html.min.js',
|
||||
esm: true,
|
||||
},
|
||||
{
|
||||
input: 'player/js/modules/html.js',
|
||||
dest: `${destinationBuildFolder}`,
|
||||
file: 'lottie_html.js',
|
||||
esm: false,
|
||||
skipTerser: true,
|
||||
},
|
||||
];
|
||||
|
||||
const plugins = [
|
||||
nodeResolve(),
|
||||
babel({
|
||||
babelHelpers: 'runtime',
|
||||
skipPreflightCheck: true,
|
||||
}),
|
||||
// noTreeShakingForStandalonePlugin(),
|
||||
injectVersion(),
|
||||
addNavigatorValidation(),
|
||||
]
|
||||
const pluginsWithTerser = [
|
||||
...plugins,
|
||||
terser(),
|
||||
]
|
||||
|
||||
const UMDModule = {
|
||||
output: {
|
||||
format: 'umd',
|
||||
name: 'lottie', // this is the name of the global object
|
||||
esModule: false,
|
||||
exports: 'default',
|
||||
sourcemap: false,
|
||||
compact: false,
|
||||
},
|
||||
treeshake: false,
|
||||
};
|
||||
|
||||
const ESMModule = {
|
||||
plugins: [nodeResolve()],
|
||||
treeshake: false,
|
||||
output: [
|
||||
{
|
||||
format: 'esm',
|
||||
exports: 'named',
|
||||
},
|
||||
{
|
||||
format: 'cjs',
|
||||
exports: 'named',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const exports = builds.reduce((acc, build) => {
|
||||
const builds = [];
|
||||
builds.push({
|
||||
...UMDModule,
|
||||
plugins: !build.skipTerser ? pluginsWithTerser : plugins,
|
||||
input: build.input,
|
||||
output: {
|
||||
...UMDModule.output,
|
||||
file: `${build.dest}${build.file}`,
|
||||
}
|
||||
});
|
||||
if (build.esm) {
|
||||
builds.push({
|
||||
...ESMModule,
|
||||
input: build.input,
|
||||
output: [
|
||||
{
|
||||
...ESMModule.output[0],
|
||||
file: 'dist/esm/' + build.file,
|
||||
file: `${destinationBuildFolder}esm/${build.file}`,
|
||||
},
|
||||
{
|
||||
...ESMModule.output[1],
|
||||
file: `${destinationBuildFolder}cjs/${build.file}`,
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
acc = acc.concat(builds);
|
||||
return acc;
|
||||
}, []);
|
||||
export default exports;
|
Reference in New Issue
Block a user