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>