Skip to content

Latest commit

 

History

History
 
 

requirejs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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>

Analytics