Skip to content

Entry Chunk

An entry chunk is created, because we need to output a JavaScript file for:

  • Exporting the exports of the entry module
  • Representing the executing point of the corresponding entry.
  • Storing the code of the entry module and its dependencies (if not code-split into separate chunks)

Let's say you have an app that could run separately but also could be used as a library by other apps.

File structure:

js
// component.js
export function component() {
  return 'Hello World';
}

// render.js
export function render(component) {
  console.log(component());
}

// app.js
import { component } from './component.js';
import { render } from './render.js';

render(component);

// lib.js
export { component } from './component.js';

Config:

js
export default defineConfig({
  input: {
    app: './app.js',
    lib: './lib.js',
  },
});

Rolldown will create outputs like:

js
import { component } from './common.js';

function render(component) {
  console.log(component());
}

render(component);
js
export { component } from './common.js';
js
export function component() {
  return 'Hello World';
}
  • lib.js is created because we need to create the export signature export { component } and export it in lib.js.
  • For app.js, though it doesn't export anything, we still need to create app.js as the executing point of the app.
  • You'll also notice, from the executing point app.js, only modules, like render.js, imported are executed. This is another reason and promise made by being the executing point.

Released under the MIT License.