# Rollup

This library has a proper ESM build that is enabled by default:

```js
import { read, utils } from 'xlsx';
```

This sample demonstrates a bundle for browser as well as for node.

This demo uses the `import` form to expose the whole library, enabling client
code to access the library with `import XLSX from 'xlsx'`.  The JS code from
the root demo was moved to a separate `app.js` script.

## Required Plugins

The `rollup-plugin-node-resolve` plugin is used:

```js
import resolve from 'rollup-plugin-node-resolve';
export default {
	/* ... */
	plugins: [
		resolve({
			module: false, // <-- this library is not an ES6 module
			browser: true, // <-- suppress node-specific features
		})
	],
	/* ... */
};
```

For the browser deployments, the output format is `'iife'`.  For node, the
output format is `'cjs'`.

### Worker Scripts

Rollup can also bundle worker scripts!  Instead of using `importScripts`, the
worker script should import the module:

```diff
-importScripts('dist/xlsx.full.min.js');
+import * as XLSX from 'xlsx'; // or do named imports
```

[![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-xlsx?pixel)](https://github.com/SheetJS/js-xlsx)