UNPKG

@knapsack/app

Version:

Build Design Systems on top of knapsack, by Basalt

94 lines (88 loc) 2.25 kB
import getBabelConfig from '@knapsack/babel-config/get-config'; import commonjs from '@rollup/plugin-commonjs'; // import builtins from 'rollup-plugin-node-builtins'; import json from '@rollup/plugin-json'; import babel from 'rollup-plugin-babel'; import resolve from '@rollup/plugin-node-resolve'; import replace from '@rollup/plugin-replace'; import { join } from 'path'; import { DEFAULT_EXTENSIONS } from '@babel/core'; const isProd = process.env.NODE_ENV === 'production'; const extensions = ['.ts', '.tsx', ...DEFAULT_EXTENSIONS]; const distDir = join(__dirname, './dist/client/renderer-client/'); /** @type {import('rollup').RollupOptions} */ const baseConfig = { input: { 'renderer-client': join( __dirname, './src/client/renderer-client/renderer-client-main.ts', ), }, plugins: [ resolve({ extensions, }), replace({ 'process.env.NODE_ENV': JSON.stringify( isProd ? 'production' : 'development', ), }), commonjs({ include: /node_modules/, }), json(), ], }; /** @type {import('rollup').RollupOptions} */ const modernConfig = { ...baseConfig, output: { format: 'esm', dir: distDir, entryFileNames: '[name].mjs', chunkFileNames: '[name]-[hash].mjs', assetFileNames: 'assets/[name]-[hash][extname]', }, plugins: [ ...baseConfig.plugins, babel({ babelrc: false, ...getBabelConfig({ useESModules: true, targets: { esmodules: true, }, }), extensions, exclude: /node_modules/, runtimeHelpers: true, }), ], }; /** @type {import('rollup').RollupOptions} */ const legacyConfig = { ...baseConfig, output: { format: 'system', dir: distDir, entryFileNames: '[name].js', chunkFileNames: '[name]-[hash].js', assetFileNames: 'assets/[name]-[hash][extname]', }, plugins: [ ...baseConfig.plugins, babel({ babelrc: false, ...getBabelConfig({ useESModules: true, targets: { browsers: ['last 2 versions', '> 5%', 'not ie <= 11'], }, }), extensions, exclude: /node_modules/, runtimeHelpers: true, }), ], }; export default [modernConfig, legacyConfig];