sheetjs_sheetjs/demos/fusebox/README.md

63 lines
1.5 KiB
Markdown
Raw Normal View History

# 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: ".",
target: "node",
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)