forked from sheetjs/sheetjs
1.5 KiB
1.5 KiB
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
argument is _XLSX rather than XLSX. This trick is employed in the included
xlsx-shim.js script:
/* xlsx-shim.js */
define(['xlsx'], function (_XLSX) {
return XLSX;
});
The require config should set xlsx path to the appropriate dist file:
paths: {
xlsx: "xlsx.full.min"
},
Once that is set, app code can freely require "xlsx-shim":
require(["xlsx-shim"], function(XLSX) {
/* use XLSX here */
});
Deployments
browser.html demonstrates a dynamic deployment, using the in-browser config:
<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:
/* build config */
({
baseUrl: ".",
name: "app",
paths: {
xlsx: "xlsx.full.min"
},
out: "app-built.js"
})
The optimizer is invoked with:
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:
<!-- final bundle includes require.js, xlsx-shim, library and app code -->
<script src="app-built.js"></script>