UNPKG

xeira

Version:

One Web Dev stack tool to rule them all

93 lines (77 loc) 2.23 kB
import json from '@rollup/plugin-json' import {babel} from '@rollup/plugin-babel' import externals from 'rollup-plugin-node-externals' import {nodeResolve} from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' import scss from 'rollup-plugin-postcss' import autoprefixer from 'autoprefixer' import {rollupBanner} from './commons/banner.mjs' import {getDynamicImportOptions} from './commons/dynImports.mjs' import { getRollupPluginForResolvingAliases } from '../../../utils/aliases.mjs' import { getBabelConfig } from '../../../config/babel.mjs' async function rollupModulesForCjs(context, pkgJsonPath, pkgJson, input) { const customBabelConfig= { exclude: /node_modules/, /*https://github.com/rollup/plugins/tree/master/packages/babel#babelhelpers*/ // TODO // context.isAnApp() // ? 'runtime' https://github.com/rollup/plugins/tree/master/packages/babel#injected-helpers // : bundled babelHelpers: 'bundled', presets: [ ["@babel/preset-env", { bugfixes: true, loose: true }], ... context.usesReact ? ['@babel/preset-react'] : [] ], plugins: [ "babel-plugin-transform-import-meta" ] } const mergedBabelConfig= await getBabelConfig(context, input, customBabelConfig) const inputOptions= { input, plugins: [ babel(mergedBabelConfig), commonjs({ esmExternals: true }), ...getRollupPluginForResolvingAliases(context.pkgPath), json(), externals({ packagePath: pkgJsonPath }), nodeResolve({ rootDir: context.pkgPath, exportConditions: ['node'], }), scss({ extract: true, plugins: [ autoprefixer() ], use: { sass: { silenceDeprecations: ['legacy-js-api'], } } }) ] } const output = context.pkgp(context.getCjsOutput()) const outputs= [ { ...getDynamicImportOptions (context, output), format: 'cjs', exports: 'named', banner: rollupBanner(pkgJson) } ] return [inputOptions, outputs] } export { rollupModulesForCjs }