import path from 'path'; import alias from '@rollup/plugin-alias'; import json from '@rollup/plugin-json'; import resolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; import { terser } from "rollup-plugin-terser"; import analyze from 'rollup-plugin-analyzer'; import babel from 'rollup-plugin-babel'; import glsl from './rollup-plugin-glsl'; import postcss from 'rollup-plugin-postcss'; import url from 'postcss-url'; function resolveFile(filePath) { return path.join(__dirname, '..', filePath) } module.exports = [ { input: resolveFile('build/bundle.ts'), output: { file: resolveFile('packages/l7/dist/l7.js'), format: 'umd', name: 'L7', globals: { 'mapbox-gl': 'mapboxgl', }, }, external: [ 'mapbox-gl', ], treeshake: true, plugins: [ alias( { resolve: ['.tsx', '.ts'], entries: [ { find: /^@l7\/(.*)/, replacement: resolveFile('packages/$1/src'), }, ] }, ), resolve({ browser: true, preferBuiltins: false, extensions: ['.js', '.ts'], }), glsl( ['**/*.glsl'], true, ), json(), postcss({ plugins: [ url({ url: 'inline' }), ], }), // @see https://github.com/rollup/rollup-plugin-node-resolve#using-with-rollup-plugin-commonjs commonjs({ namedExports: { eventemitter3: [ 'EventEmitter' ], // @see https://github.com/rollup/rollup-plugin-commonjs/issues/266 lodash: [ 'isNil', 'uniq', 'clamp', 'isObject', 'isFunction', 'cloneDeep', 'isString', 'isNumber', ], } }), babel({ extensions: ['.js', '.ts'], }), terser(), analyze({ summaryOnly: true, limit: 20, }), ], }, ];