packages/plugin-loader/rollup.config.ts
Rama main · réplica de lectura del repositorio original.
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import sourceMaps from 'rollup-plugin-sourcemaps';
import camelCase from 'lodash.camelcase';
import typescript from 'rollup-plugin-typescript2';
import replace from 'rollup-plugin-replace';
import json from 'rollup-plugin-json';
import serve from 'rollup-plugin-serve';
import react from 'react';
import reactDom from 'react-dom';
import * as muiUtils from '@material-ui/utils';
import * as reactIs from 'react-is';
const SERVE = process.env.SERVE === 'true';
const pkg = require('./package.json');
const libraryName = 'plugin-loader';
const defaultConfig = {
input: `src/${libraryName}.ts`,
output: [
{ file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true },
{ file: pkg.module, format: 'es', sourcemap: true },
],
// Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash')
external: [],
watch: {
include: 'src/**',
},
plugins: [
// Allow json resolution
json(),
// Compile TypeScript files
typescript({ useTsconfigDeclarationDir: true }),
// Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs)
commonjs({
// include: 'node_modules/**',
namedExports: {
react: Object.keys(react),
'react-dom': Object.keys(reactDom),
'@material-ui/utils': Object.keys(muiUtils),
'react-is': Object.keys(reactIs),
'../react/node_modules/react/index.js': Object.keys(react),
},
}),
// Allow node_modules resolution, so you can use 'external' to control
// which external modules to include in the bundle
// https://github.com/rollup/rollup-plugin-node-resolve#usage
resolve(),
replace({
'process.env.NODE_ENV': JSON.stringify('production'),
}),
// Resolve source maps to the original source
sourceMaps(),
],
};
export default [
// defaultConfig,
Object.assign(defaultConfig, {
input: 'src/content-loader.tsx',
output: [
{
file: 'dist/content-loader.umd.js',
name: camelCase(libraryName),
format: 'umd',
sourcemap: true,
},
{ file: 'dist/content-loader.esm.js', format: 'es', sourcemap: true },
],
plugins: defaultConfig.plugins.concat(
SERVE
? [
serve({
contentBase: 'dist',
port: 1269,
headers: {
'Access-Control-Allow-Origin': '*',
},
}),
]
: []
),
}),
];