mirror of
https://github.com/developit/microbundle.git
synced 2026-01-18 13:56:35 +00:00
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)
This commit is contained in:
parent
afafa6d213
commit
5f8ea9ee7e
@ -1,4 +1,3 @@
|
||||
import { createConfigItem } from '@babel/core';
|
||||
import { createBabelInputPluginFactory } from '@rollup/plugin-babel';
|
||||
import merge from 'lodash.merge';
|
||||
import transformFastRest from './transform-fast-rest';
|
||||
@ -8,7 +7,7 @@ const ESMODULES_TARGET = {
|
||||
esmodules: true,
|
||||
};
|
||||
|
||||
const mergeConfigItems = (type, ...configItemsToMerge) => {
|
||||
const mergeConfigItems = (babel, type, ...configItemsToMerge) => {
|
||||
const mergedItems = [];
|
||||
|
||||
configItemsToMerge.forEach(configItemToMerge => {
|
||||
@ -24,7 +23,7 @@ const mergeConfigItems = (type, ...configItemsToMerge) => {
|
||||
return;
|
||||
}
|
||||
|
||||
mergedItems[itemToMergeWithIndex] = createConfigItem(
|
||||
mergedItems[itemToMergeWithIndex] = babel.createConfigItem(
|
||||
[
|
||||
mergedItems[itemToMergeWithIndex].file.resolved,
|
||||
merge(mergedItems[itemToMergeWithIndex].options, item.options),
|
||||
@ -39,11 +38,11 @@ const mergeConfigItems = (type, ...configItemsToMerge) => {
|
||||
return mergedItems;
|
||||
};
|
||||
|
||||
const createConfigItems = (type, items) => {
|
||||
const createConfigItems = (babel, type, items) => {
|
||||
return items.map(item => {
|
||||
let { name, value, ...options } = item;
|
||||
value = value || [require.resolve(name), options];
|
||||
return createConfigItem(value, { type });
|
||||
return babel.createConfigItem(value, { type });
|
||||
});
|
||||
};
|
||||
|
||||
@ -68,6 +67,7 @@ export default () => {
|
||||
const isNodeTarget = targets && targets.node != null;
|
||||
|
||||
const defaultPlugins = createConfigItems(
|
||||
babelCore,
|
||||
'plugin',
|
||||
[
|
||||
{
|
||||
@ -129,7 +129,7 @@ export default () => {
|
||||
|
||||
if (envIdx !== -1) {
|
||||
const preset = babelOptions.presets[envIdx];
|
||||
babelOptions.presets[envIdx] = createConfigItem(
|
||||
babelOptions.presets[envIdx] = babelCore.createConfigItem(
|
||||
[
|
||||
require.resolve(environmentPreset),
|
||||
Object.assign(
|
||||
@ -156,7 +156,7 @@ export default () => {
|
||||
},
|
||||
);
|
||||
} else {
|
||||
babelOptions.presets = createConfigItems('preset', [
|
||||
babelOptions.presets = createConfigItems(babelCore, 'preset', [
|
||||
{
|
||||
name: environmentPreset,
|
||||
targets: customOptions.modern
|
||||
@ -175,6 +175,7 @@ export default () => {
|
||||
|
||||
// Merge babelrc & our plugins together
|
||||
babelOptions.plugins = mergeConfigItems(
|
||||
babelCore,
|
||||
'plugin',
|
||||
defaultPlugins,
|
||||
babelOptions.plugins || [],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user