56 lines
1.7 KiB
Bash
Executable File
56 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# https://docs.sheetjs.com/docs/demos/frontend/bundler/esbuild
|
|
cd /tmp
|
|
rm -rf sheetjs-esbrowser
|
|
|
|
mkdir sheetjs-esbrowser
|
|
cd sheetjs-esbrowser
|
|
npm init -y
|
|
|
|
npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz
|
|
curl -LO https://docs.sheetjs.com/esbuild/esbrowser.js
|
|
curl -LO https://docs.sheetjs.com/esbuild/esbnode.js
|
|
|
|
cat >index.html <<EOF
|
|
<body><script src="esb.browser.js"></script></body>
|
|
EOF
|
|
|
|
cat >test.js <<EOF
|
|
const puppeteer = require('puppeteer');
|
|
const express = require('express');
|
|
const app = express();
|
|
app.use(express.static('./'));
|
|
app.listen(7262, async() => {
|
|
await new Promise((res,rej) => setTimeout(res, 1000));
|
|
const browser = await puppeteer.launch();
|
|
const page = await browser.newPage();
|
|
page.on("console", msg => console.log("PAGE LOG:", msg.text()));
|
|
await page.setViewport({width: 1920, height: 1080});
|
|
const client = await page.target().createCDPSession();
|
|
await client.send('Browser.setDownloadBehavior', {
|
|
behavior: 'allow',
|
|
downloadPath: require("path").resolve('./')
|
|
});
|
|
page.on('request', req => console.log(req.url()));
|
|
await page.goto('http://localhost:7262/');
|
|
await new Promise((res,rej) => setTimeout(res, 1000));
|
|
await browser.close();
|
|
process.exit();
|
|
});
|
|
EOF
|
|
|
|
for n in 0.9.7 0.10.2 0.11.23 0.12.29 0.13.15 0.14.54 0.15.18 0.16.17 0.17.19 0.18.20 0.19.12 0.20.2 0.21.4; do
|
|
npx -y esbuild@$n --version
|
|
|
|
## Browser Test
|
|
npx -y esbuild@$n esbrowser.js --bundle --outfile=esb.browser.js
|
|
node test.js
|
|
npx -y xlsx-cli Presidents.xlsx | head -n 3
|
|
rm -f esb.browser.js Presidents.xlsx
|
|
|
|
npx -y esbuild@$n esbnode.js --bundle --platform=node --outfile=esb.node.js
|
|
node esb.node.js
|
|
npx -y xlsx-cli Presidents.xlsx | head -n 3
|
|
rm -f esb.node.js Presidents.xlsx
|
|
done
|