diff --git a/scripts/build/config.mjs b/scripts/build/config.mjs index 5d9aea8a7d53..87638ba243c6 100644 --- a/scripts/build/config.mjs +++ b/scripts/build/config.mjs @@ -23,6 +23,20 @@ const { require } = createEsmUtils(import.meta); * @property {string[]} ignore - paths of CJS modules to ignore */ +/* +`diff` use deprecated folder mapping "./" in the "exports" field, +so we can't `require("diff/lib/diff/array.js")` directory. +To reduce the bundle size + +We can switch to deep require once https://github.com/kpdecker/jsdiff/pull/351 get merged +*/ +const replaceDiffPackageEntry = (file) => ({ + [require.resolve("diff")]: path.join( + path.dirname(require.resolve("diff/package.json")), + file + ), +}); + /** @type {Bundle[]} */ const parsers = [ { @@ -229,6 +243,7 @@ const coreBundles = [ replacement: "const utilInspect = require('util').inspect", }, ], + replaceModule: replaceDiffPackageEntry("lib/diff/array.js"), }, { input: "src/document/index.js", @@ -248,6 +263,7 @@ const coreBundles = [ ), [createRequire(require.resolve("vnopts")).resolve("chalk")]: require.resolve("./shims/chalk.cjs"), + ...replaceDiffPackageEntry("lib/diff/array.js"), }, }, { @@ -260,6 +276,7 @@ const coreBundles = [ input: "src/cli/index.js", output: "cli.js", external: ["benchmark"], + replaceModule: replaceDiffPackageEntry("lib/patch/create.js"), }, { input: "src/common/third-party.js", diff --git a/src/cli/format.js b/src/cli/format.js index ce3a1063f8f8..bfff5e2cda41 100644 --- a/src/cli/format.js +++ b/src/cli/format.js @@ -17,18 +17,9 @@ const getOptionsForFile = require("./options/get-options-for-file.js"); const isTTY = require("./is-tty.js"); function diff(a, b) { - // Use `diff/lib/patch/create.js` instead of `diff` to reduce bundle size - return require("diff/lib/patch/create.js").createTwoFilesPatch( - "", - "", - a, - b, - "", - "", - { - context: 2, - } - ); + return require("diff").createTwoFilesPatch("", "", a, b, "", "", { + context: 2, + }); } function handleError(context, filename, error, printedFilename) { diff --git a/src/main/core.js b/src/main/core.js index 07e40624f856..133128469d9b 100644 --- a/src/main/core.js +++ b/src/main/core.js @@ -1,7 +1,6 @@ "use strict"; -// Use `diff/lib/diff/array.js` instead of `diff` to reduce bundle size -const { diffArrays } = require("diff/lib/diff/array.js"); +const { diffArrays } = require("diff"); const { printer: { printDocToString },