sheetjs_sheetjs/demos/requirejs/README.md

77 lines
1.5 KiB
Markdown
Raw Normal View History

# RequireJS
The minified dist files trip up the RequireJS mechanism. To bypass, the scripts
automatically expose an `XLSX` variable that can be used if the require callback
2017-09-24 23:40:09 +00:00
argument is `_XLSX` rather than `XLSX`. This trick is employed in the included
`xlsx-shim.js` script:
```js
2017-09-24 23:40:09 +00:00
/* xlsx-shim.js */
define(['xlsx'], function (_XLSX) {
return XLSX;
});
```
2017-09-24 23:40:09 +00:00
The require config should set `xlsx` path to the appropriate dist file:
```js
paths: {
xlsx: "xlsx.full.min"
},
```
Once that is set, app code can freely require `"xlsx-shim"`:
```js
require(["xlsx-shim"], function(XLSX) {
/* use XLSX here */
});
```
## Deployments
`browser.html` demonstrates a dynamic deployment, using the in-browser config:
```html
<script src="require.js"></script>
<script>
require.config({
baseUrl: ".",
name: "app",
paths: {
xlsx: "xlsx.full.min"
}
});
</script>
<script src="app.js"></script>
```
`optimizer.html` demonstrates an optimized deployment using `build.js` config:
```js
/* build config */
({
baseUrl: ".",
name: "app",
paths: {
xlsx: "xlsx.full.min"
},
out: "app-built.js"
})
```
The optimizer is invoked with:
```bash
node r.js -o build.js paths.requireLib=./require include=requireLib
```
That step creates a file `app-built.js` that can be included in a page:
```html
<!-- final bundle includes require.js, xlsx-shim, library and app code -->
<script src="app-built.js"></script>
```
[![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-xlsx?pixel)](https://github.com/SheetJS/js-xlsx)