From 23d6182d3d683ef292e9d9228de42d8a04c570be Mon Sep 17 00:00:00 2001 From: Take Weiland Date: Mon, 11 Aug 2025 21:49:18 +0200 Subject: [PATCH] Fix the build ES6 code having the wrong file extension and use it in package.json exports --- package.json | 6 +++--- tasks/build.js | 14 +++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 8a7dfcfbd..873b8a42b 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "repository": "https://github.com/moment/luxon", "exports": { ".": { - "import": "./src/luxon.js", + "import": "./build/es6/luxon.mjs", "require": "./build/node/luxon.js" }, "./package.json": "./package.json" @@ -78,8 +78,8 @@ "build/global/luxon.js.map", "build/global/luxon.min.js", "build/global/luxon.min.js.map", - "build/es6/luxon.js", - "build/es6/luxon.js.map", + "build/es6/luxon.mjs", + "build/es6/luxon.mjs.map", "src" ], "license": "MIT", diff --git a/tasks/build.js b/tasks/build.js index fc07b32ff..e2d0bff9b 100644 --- a/tasks/build.js +++ b/tasks/build.js @@ -86,12 +86,15 @@ async function buildLibrary(dest, opts) { console.log("Building", dest); const promises = [babelAndRollup(dest, opts)]; + const filename = opts.filename || "luxon.js"; + const minFilename = filename.replace(/\.(m?js)$/, ".min.$1"); + if (opts.minify && TRUST_MINIFY) { promises.push( babelAndRollup(dest, { ...opts, minify: true, - filename: "luxon.min.js", + filename: minFilename, }) ); } @@ -99,21 +102,21 @@ async function buildLibrary(dest, opts) { await Promise.all(promises); if (opts.minify && !TRUST_MINIFY) { - const code = fs.readFileSync(`build/${dest}/luxon.js`, "utf8"), + const code = fs.readFileSync(`build/${dest}/${filename}`, "utf8"), ugly = UglifyJS.minify(code, { toplevel: !opts.global, output: { comments: false, }, sourceMap: { - filename: `build/${dest}/luxon.js`, + filename: `build/${dest}/${filename}`, }, }); if (ugly.error) { console.error("Error uglifying", ugly.error); } else { - fs.writeFileSync(`build/${dest}/luxon.min.js`, ugly.code); - fs.writeFileSync(`build/${dest}/luxon.min.js.map`, ugly.map); + fs.writeFileSync(`build/${dest}/${minFilename}`, ugly.code); + fs.writeFileSync(`build/${dest}/${minFilename}.map`, ugly.map); } } console.log("Built", dest); @@ -153,6 +156,7 @@ async function es6() { format: "es", minify: true, compile: false, + filename: "luxon.mjs", }); }