Skip to content

Commit

Permalink
Port Rollup config from master to 4.x
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Apr 2, 2021
1 parent a079449 commit 24c4643
Showing 1 changed file with 65 additions and 11 deletions.
76 changes: 65 additions & 11 deletions rollup.config.js
Expand Up @@ -5,38 +5,85 @@ import { terser } from 'rollup-plugin-terser'

import pkg from './package.json'

const extensions = ['.js']

const babelRuntimeVersion = pkg.dependencies['@babel/runtime'].replace(
/^[^0-9]*/,
''
)

const makeExternalPredicate = externalArr => {
if (externalArr.length === 0) {
return () => false
}
const pattern = new RegExp(`^(${externalArr.join('|')})($|/)`)
return id => pattern.test(id)
}

export default [
// CommonJS
{
input: 'src/index.js',
output: { file: 'lib/redux.js', format: 'cjs', indent: false },
external: [
external: makeExternalPredicate([
...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {})
],
plugins: [babel()]
]),
plugins: [
nodeResolve({
extensions
}),
babel({
extensions,
plugins: [
['@babel/plugin-transform-runtime', { version: babelRuntimeVersion }],
],
babelHelpers: 'runtime'
})
]
},

// ES
{
input: 'src/index.js',
output: { file: 'es/redux.js', format: 'es', indent: false },
external: [
external: makeExternalPredicate([
...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {})
],
plugins: [babel()]
]),
plugins: [
nodeResolve({
extensions
}),
babel({
extensions,
plugins: [
[
'@babel/plugin-transform-runtime',
{ version: babelRuntimeVersion, useESModules: true }
],
],
babelHelpers: 'runtime'
})
]
},

// ES for Browsers
{
input: 'src/index.js',
output: { file: 'es/redux.mjs', format: 'es', indent: false },
plugins: [
nodeResolve(),
nodeResolve({
extensions
}),
replace({
'process.env.NODE_ENV': JSON.stringify('production')
}),
babel({
extensions,
exclude: 'node_modules/**',
skipPreflightCheck: true
}),
terser({
compress: {
pure_getters: true,
Expand All @@ -58,9 +105,12 @@ export default [
indent: false
},
plugins: [
nodeResolve(),
nodeResolve({
extensions
}),
babel({
exclude: 'node_modules/**'
extensions,
exclude: 'node_modules/**',
}),
replace({
'process.env.NODE_ENV': JSON.stringify('development')
Expand All @@ -78,9 +128,13 @@ export default [
indent: false
},
plugins: [
nodeResolve(),
nodeResolve({
extensions
}),
babel({
exclude: 'node_modules/**'
extensions,
exclude: 'node_modules/**',
skipPreflightCheck: true
}),
replace({
'process.env.NODE_ENV': JSON.stringify('production')
Expand Down

0 comments on commit 24c4643

Please sign in to comment.