From 09de27b31bf81b4f50d21e98533cb750e297ffd6 Mon Sep 17 00:00:00 2001 From: Jakub Jankowski Date: Tue, 20 Jul 2021 21:25:43 +0200 Subject: [PATCH] feat: enable custom packages encapsulation --- src/commands/build/index.ts | 1 + src/commands/bundle/index.ts | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/commands/build/index.ts b/src/commands/build/index.ts index cdcd825..078c87b 100644 --- a/src/commands/build/index.ts +++ b/src/commands/build/index.ts @@ -85,6 +85,7 @@ export default class BuildCommand extends Command { 'dependenciesMeta', 'pkg', 'type', + 'exports', ]); releasePkg.main = 'index.js'; diff --git a/src/commands/bundle/index.ts b/src/commands/bundle/index.ts index f4bb3a2..ea425f1 100644 --- a/src/commands/bundle/index.ts +++ b/src/commands/bundle/index.ts @@ -47,15 +47,23 @@ export default class BundleCommand extends BuildCommand { protected preparePackageJson() { const pkg = super.preparePackageJson(); + const exports = { + require: './index.js', + import: './index.mjs', + }; + Object.assign(pkg, { type: 'commonjs', main: './index.js', // webpack v4 support module: './index.esm.js', - exports: { - require: './index.js', - import: './index.mjs', - }, + exports: + 'exports' in pkg && typeof pkg.exports === 'object' + ? { + ...pkg.exports, + '.': exports, + } + : exports, }); return pkg;