Skip to content

Commit 530b9ea

Browse files
authored
fix(utils): setup extension by format in getRollupOutput (#244)
BREAKING CHANGE: Built files now have `.mjs` or `.cjs` for ESM and CJS respectively. You may need to update your exports configuration for your library.
1 parent e68fecc commit 530b9ea

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/__tests__/utils.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,17 @@ function mockCosmiconfig(result = null) {
190190

191191
cosmiconfigSync.mockImplementationOnce(() => ({search: () => result}))
192192
}
193+
194+
test.each([
195+
{format: 'cjs', extension: '.cjs'},
196+
{format: 'esm', extension: '.mjs'},
197+
{format: 'umd', extension: '.js'},
198+
{format: 'amd', extension: '.js'},
199+
])(
200+
'file extension in rollupOutput with $format should be $extension',
201+
({format, extension}) => {
202+
expect(
203+
require('../utils').getRollupOutput(format).filename.endsWith(extension),
204+
).toBeTruthy()
205+
},
206+
)

src/utils.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,17 @@ function getRollupInputs() {
210210
function getRollupOutput(format = process.env.BUILD_FORMAT) {
211211
const minify = parseEnv('BUILD_MINIFY', false)
212212
const filenameSuffix = process.env.BUILD_FILENAME_SUFFIX || ''
213+
const ext =
214+
{
215+
esm: '.mjs',
216+
cjs: '.cjs',
217+
}[format] || '.js'
213218
const filename = [
214219
pkg.name,
215220
filenameSuffix,
216221
`.${format}`,
217222
minify ? '.min' : null,
218-
'.js',
223+
ext,
219224
]
220225
.filter(Boolean)
221226
.join('')

0 commit comments

Comments
 (0)