Skip to content

Commit 5f8ea9e

Browse files
authored
Use DI to prevent multiple copies of @babel/core (#664)
* Use DI to prevent multiple copies of @babel/core Fixes #657. * Actually fix it (haha)
1 parent afafa6d commit 5f8ea9e

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

src/lib/babel-custom.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { createConfigItem } from '@babel/core';
21
import { createBabelInputPluginFactory } from '@rollup/plugin-babel';
32
import merge from 'lodash.merge';
43
import transformFastRest from './transform-fast-rest';
@@ -8,7 +7,7 @@ const ESMODULES_TARGET = {
87
esmodules: true,
98
};
109

11-
const mergeConfigItems = (type, ...configItemsToMerge) => {
10+
const mergeConfigItems = (babel, type, ...configItemsToMerge) => {
1211
const mergedItems = [];
1312

1413
configItemsToMerge.forEach(configItemToMerge => {
@@ -24,7 +23,7 @@ const mergeConfigItems = (type, ...configItemsToMerge) => {
2423
return;
2524
}
2625

27-
mergedItems[itemToMergeWithIndex] = createConfigItem(
26+
mergedItems[itemToMergeWithIndex] = babel.createConfigItem(
2827
[
2928
mergedItems[itemToMergeWithIndex].file.resolved,
3029
merge(mergedItems[itemToMergeWithIndex].options, item.options),
@@ -39,11 +38,11 @@ const mergeConfigItems = (type, ...configItemsToMerge) => {
3938
return mergedItems;
4039
};
4140

42-
const createConfigItems = (type, items) => {
41+
const createConfigItems = (babel, type, items) => {
4342
return items.map(item => {
4443
let { name, value, ...options } = item;
4544
value = value || [require.resolve(name), options];
46-
return createConfigItem(value, { type });
45+
return babel.createConfigItem(value, { type });
4746
});
4847
};
4948

@@ -68,6 +67,7 @@ export default () => {
6867
const isNodeTarget = targets && targets.node != null;
6968

7069
const defaultPlugins = createConfigItems(
70+
babelCore,
7171
'plugin',
7272
[
7373
{
@@ -129,7 +129,7 @@ export default () => {
129129

130130
if (envIdx !== -1) {
131131
const preset = babelOptions.presets[envIdx];
132-
babelOptions.presets[envIdx] = createConfigItem(
132+
babelOptions.presets[envIdx] = babelCore.createConfigItem(
133133
[
134134
require.resolve(environmentPreset),
135135
Object.assign(
@@ -156,7 +156,7 @@ export default () => {
156156
},
157157
);
158158
} else {
159-
babelOptions.presets = createConfigItems('preset', [
159+
babelOptions.presets = createConfigItems(babelCore, 'preset', [
160160
{
161161
name: environmentPreset,
162162
targets: customOptions.modern
@@ -175,6 +175,7 @@ export default () => {
175175

176176
// Merge babelrc & our plugins together
177177
babelOptions.plugins = mergeConfigItems(
178+
babelCore,
178179
'plugin',
179180
defaultPlugins,
180181
babelOptions.plugins || [],

0 commit comments

Comments
 (0)