Skip to content

Commit 24c4643

Browse files
committed
Port Rollup config from master to 4.x
1 parent a079449 commit 24c4643

File tree

1 file changed

+65
-11
lines changed

1 file changed

+65
-11
lines changed

rollup.config.js

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,85 @@ import { terser } from 'rollup-plugin-terser'
55

66
import pkg from './package.json'
77

8+
const extensions = ['.js']
9+
10+
const babelRuntimeVersion = pkg.dependencies['@babel/runtime'].replace(
11+
/^[^0-9]*/,
12+
''
13+
)
14+
15+
const makeExternalPredicate = externalArr => {
16+
if (externalArr.length === 0) {
17+
return () => false
18+
}
19+
const pattern = new RegExp(`^(${externalArr.join('|')})($|/)`)
20+
return id => pattern.test(id)
21+
}
22+
823
export default [
924
// CommonJS
1025
{
1126
input: 'src/index.js',
1227
output: { file: 'lib/redux.js', format: 'cjs', indent: false },
13-
external: [
28+
external: makeExternalPredicate([
1429
...Object.keys(pkg.dependencies || {}),
1530
...Object.keys(pkg.peerDependencies || {})
16-
],
17-
plugins: [babel()]
31+
]),
32+
plugins: [
33+
nodeResolve({
34+
extensions
35+
}),
36+
babel({
37+
extensions,
38+
plugins: [
39+
['@babel/plugin-transform-runtime', { version: babelRuntimeVersion }],
40+
],
41+
babelHelpers: 'runtime'
42+
})
43+
]
1844
},
1945

2046
// ES
2147
{
2248
input: 'src/index.js',
2349
output: { file: 'es/redux.js', format: 'es', indent: false },
24-
external: [
50+
external: makeExternalPredicate([
2551
...Object.keys(pkg.dependencies || {}),
2652
...Object.keys(pkg.peerDependencies || {})
27-
],
28-
plugins: [babel()]
53+
]),
54+
plugins: [
55+
nodeResolve({
56+
extensions
57+
}),
58+
babel({
59+
extensions,
60+
plugins: [
61+
[
62+
'@babel/plugin-transform-runtime',
63+
{ version: babelRuntimeVersion, useESModules: true }
64+
],
65+
],
66+
babelHelpers: 'runtime'
67+
})
68+
]
2969
},
3070

3171
// ES for Browsers
3272
{
3373
input: 'src/index.js',
3474
output: { file: 'es/redux.mjs', format: 'es', indent: false },
3575
plugins: [
36-
nodeResolve(),
76+
nodeResolve({
77+
extensions
78+
}),
3779
replace({
3880
'process.env.NODE_ENV': JSON.stringify('production')
3981
}),
82+
babel({
83+
extensions,
84+
exclude: 'node_modules/**',
85+
skipPreflightCheck: true
86+
}),
4087
terser({
4188
compress: {
4289
pure_getters: true,
@@ -58,9 +105,12 @@ export default [
58105
indent: false
59106
},
60107
plugins: [
61-
nodeResolve(),
108+
nodeResolve({
109+
extensions
110+
}),
62111
babel({
63-
exclude: 'node_modules/**'
112+
extensions,
113+
exclude: 'node_modules/**',
64114
}),
65115
replace({
66116
'process.env.NODE_ENV': JSON.stringify('development')
@@ -78,9 +128,13 @@ export default [
78128
indent: false
79129
},
80130
plugins: [
81-
nodeResolve(),
131+
nodeResolve({
132+
extensions
133+
}),
82134
babel({
83-
exclude: 'node_modules/**'
135+
extensions,
136+
exclude: 'node_modules/**',
137+
skipPreflightCheck: true
84138
}),
85139
replace({
86140
'process.env.NODE_ENV': JSON.stringify('production')

0 commit comments

Comments
 (0)