riot/compiler

View on GitHub
build/rollup.essential.config.js

Summary

Maintainability
A
0 mins
Test Coverage
import alias from '@rollup/plugin-alias'
import commonjs from '@rollup/plugin-commonjs'
import defaultConfig from './rollup.config.js'
import json from '@rollup/plugin-json'
import nodeResolve from '@rollup/plugin-node-resolve'
import { visualizer } from 'rollup-plugin-visualizer'

const ignoredModules = ['fs', 'path', 'esprima', 'babylon']

export default ['umd', 'esm'].map((format) => ({
  ...defaultConfig,
  output: {
    name: 'compiler',
    file: `./dist/compiler.essential${format === 'umd' ? '.js' : '.cjs'}`,
    format: format,
    globals: ignoredModules.reduce(
      (acc, dep) => ({
        [dep]: dep,
        ...acc,
      }),
      {},
    ),
    ...defaultConfig.output,
  },
  external: ignoredModules.concat(format === 'esm' ? [/@riotjs\/(util)/] : []),
  plugins: [
    json({
      namedExports: true,
      preferConst: true,
    }),
    alias({
      entries: [
        {
          find: 'source-map',
          replacement: './src/utils/mock/sourcemap-mock-api.js',
        },
        {
          find: 'assert',
          replacement: './src/utils/mock/assert-mock-api.js',
        },
        {
          find: 'os',
          replacement: './src/utils/mock/os-mock-api.js',
        },
        {
          find: 'recast/parsers/typescript',
          replacement: 'recast/parsers/acorn',
        },
      ],
    }),
    nodeResolve({
      extensions: ['.js', '.js', '.json'],
      browser: true,
    }),
    commonjs({
      include: 'node_modules/**',
      ignoreTryCatch: false,
      ignoreDynamicRequires: true,
      ignore: format === 'esm' ? ignoredModules : null,
      exclude: ignoredModules,
      ignoreGlobal: true,
    }),
    format === 'esm' ? visualizer() : null,
  ],
}))