2018-01-23 09:07:51 +00:00
|
|
|
# FuseBox
|
|
|
|
|
|
|
|
This library is built with some dynamic logic to determine if it is invoked in a
|
|
|
|
script tag or in nodejs. FuseBox does not understand those feature tests, so by
|
|
|
|
default it will do some strange things.
|
|
|
|
|
|
|
|
## TypeScript Support
|
|
|
|
|
|
|
|
As with most TS modules in FuseBox, the glob import form should be used:
|
|
|
|
|
|
|
|
```typescript
|
|
|
|
import * as XLSX from 'xlsx';
|
|
|
|
```
|
|
|
|
|
|
|
|
The included `sheetjs.ts` script will be transpiled and bundled to `server.js`
|
|
|
|
for the `"node"` target and `client.js` for the `"browser"` target.
|
|
|
|
|
|
|
|
## Proper Target Detection
|
|
|
|
|
|
|
|
Out of the box, FuseBox will automatically provide shims to browser globals like
|
|
|
|
`process` and `Browser`. The proper way to detect `node` uses `process`:
|
|
|
|
|
|
|
|
```typescript
|
|
|
|
if(typeof process != 'undefined' && process.versions && process.versions.node) {
|
|
|
|
/* Script is running in nodejs */
|
|
|
|
} else {
|
|
|
|
/* Script is running in a browser environment */
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Server Target
|
|
|
|
|
|
|
|
The FuseBox documentation configuration can be used as-is:
|
|
|
|
|
|
|
|
```js
|
|
|
|
const fuse = FuseBox.init({
|
|
|
|
homeDir: ".",
|
|
|
|
target: "node",
|
|
|
|
output: "$name.js"
|
|
|
|
});
|
|
|
|
fuse.bundle("server").instructions(">sheetjs.ts"); fuse.run();
|
|
|
|
```
|
|
|
|
|
|
|
|
## Browser Target
|
|
|
|
|
|
|
|
The native shims must be suppressed for browser usage:
|
|
|
|
|
|
|
|
```js
|
|
|
|
const fuse = FuseBox.init({
|
|
|
|
homeDir: ".",
|
2018-01-27 00:52:46 +00:00
|
|
|
target: "browser",
|
2018-01-23 09:07:51 +00:00
|
|
|
natives: {
|
|
|
|
Buffer: false,
|
|
|
|
stream: false,
|
|
|
|
process: false
|
|
|
|
},
|
|
|
|
output: "$name.js"
|
|
|
|
});
|
|
|
|
fuse.bundle("client").instructions(">sheetjs.ts"); fuse.run();
|
|
|
|
```
|
|
|
|
|
|
|
|
[![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-xlsx?pixel)](https://github.com/SheetJS/js-xlsx)
|