diff --git a/packages/esbuild/index.js b/packages/esbuild/index.js index d5cff9d8..8174b545 100644 --- a/packages/esbuild/index.js +++ b/packages/esbuild/index.js @@ -23,18 +23,20 @@ function getFiles(buildResult, check) { let outputs = buildResult.metafile.outputs for (let key in outputs) { - let outputEntryName = parse(key).name + let outputEntryName = parse(key).base outputs[outputEntryName] = outputs[key] outputs[outputEntryName].path = resolve(key) delete outputs[key] } if (check.entry) { - for (let i of check.entry) { - if (outputs[i]) { - entries[i] = outputs[i] - } else { - throw new SizeLimitError('unknownEntry', i) + for (let entry of check.entry) { + let matches = Object.keys(outputs).filter(key => parse(key).name === entry) + if(matches.length === 0) { + throw new SizeLimitError('unknownEntry', entry) + } + for(let match of matches) { + entries[match] = outputs[match] } } } else { diff --git a/packages/esbuild/test/fixtures/esm/nonjs.js b/packages/esbuild/test/fixtures/esm/nonjs.js new file mode 100644 index 00000000..dee0235d --- /dev/null +++ b/packages/esbuild/test/fixtures/esm/nonjs.js @@ -0,0 +1,2 @@ +import './file.js' +import './style.css' diff --git a/packages/esbuild/test/fixtures/esm/style.css b/packages/esbuild/test/fixtures/esm/style.css new file mode 100644 index 00000000..ddc786f1 --- /dev/null +++ b/packages/esbuild/test/fixtures/esm/style.css @@ -0,0 +1,3 @@ +a { + color: black +} diff --git a/packages/esbuild/test/index.test.js b/packages/esbuild/test/index.test.js index a8adc3a2..541bf192 100644 --- a/packages/esbuild/test/index.test.js +++ b/packages/esbuild/test/index.test.js @@ -64,6 +64,14 @@ it('uses esbuild to make bundle', async () => { expect(existsSync(config.checks[0].esbuildOutfile)).toBe(false) }) +it('supports bundles with css', async () => { + let config = { + checks: [{ files: fixture('esm/nonjs.js') }] + } + await run(config) + expect(config.checks[0].size).toBe(49) +}) + it('supports ignore', async () => { let config = { checks: [{ files: fixture('cjs/big.js'), ignore: ['redux'] }] diff --git a/packages/size-limit/size-limit-error.js b/packages/size-limit/size-limit-error.js index 17e0408b..1fc5d487 100644 --- a/packages/size-limit/size-limit-error.js +++ b/packages/size-limit/size-limit-error.js @@ -37,7 +37,7 @@ const MESSAGES = { unknownArg: arg => `Unknown argument *${arg}*. Check command for typo and read docs.`, unknownEntry: entry => - `Size Limit didn’t find *${entry}* entry in custom Webpack config`, + `Size Limit didn’t find *${entry}* entry in the custom bundler config`, unknownOption: opt => `Unknown option *${opt}* in config. Check Size Limit docs and version.` } diff --git a/packages/size-limit/test/__snapshots__/size-limit-error.test.js.snap b/packages/size-limit/test/__snapshots__/size-limit-error.test.js.snap index 78e2b649..f2e51f01 100644 --- a/packages/size-limit/test/__snapshots__/size-limit-error.test.js.snap +++ b/packages/size-limit/test/__snapshots__/size-limit-error.test.js.snap @@ -12,7 +12,7 @@ exports[`has error for CLI error without output 1`] = ` `; exports[`has error for unknown entry 1`] = ` -" ERROR  Size Limit didn’t find admin entry in custom Webpack config +" ERROR  Size Limit didn’t find admin entry in the custom bundler config " `;