exclude bundle from itself. add ability to force SW cache update
This commit is contained in:
parent
25b55383a3
commit
38a6ef8f03
5 changed files with 14 additions and 9 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -9,7 +9,8 @@ jszip-esm.js
|
|||
logs
|
||||
mod
|
||||
node_modules
|
||||
pack
|
||||
package-lock.json
|
||||
three.js
|
||||
tmp
|
||||
pack
|
||||
web/boot/bundle.bin
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"outputs": {
|
||||
"bundle": "./web/kiri/bundle.bin"
|
||||
"bundle": "./web/boot/bundle.bin"
|
||||
},
|
||||
"inputs": [
|
||||
{ "root": "./web", "prefix": "" },
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import path from 'path';
|
|||
import uglify from 'uglify-js';
|
||||
import { Buffer } from 'buffer';
|
||||
|
||||
const cfg = JSON.parse(fs.readFileSync(process.argv[2] || './bundle.config.json', 'utf8'));
|
||||
const cfg = JSON.parse(fs.readFileSync(process.argv[2] || './bin/bundle.config.json', 'utf8'));
|
||||
const compress = process.env.UGLIFY ? true : false
|
||||
|
||||
// --- recursive directory walker (follows symlinks safely) ---
|
||||
|
|
@ -42,6 +42,9 @@ let offset = 0;
|
|||
let cache = new Map();
|
||||
|
||||
for (const { file, virt } of entries) {
|
||||
if (file.endsWith('/bundle.bin')) {
|
||||
continue;
|
||||
}
|
||||
let record = cache.get(file);
|
||||
if (record) {
|
||||
// console.log({ dup: file });
|
||||
|
|
|
|||
|
|
@ -19,8 +19,10 @@
|
|||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
<script type="module">
|
||||
import { version } from '/lib/moto/license.js';
|
||||
(async () => {
|
||||
const ver = location.search.slice(1);
|
||||
const reg = await navigator.serviceWorker.register('/boot/service.js', { scope: '/' });
|
||||
await reg.update();
|
||||
await navigator.serviceWorker.ready;
|
||||
|
|
@ -33,7 +35,7 @@
|
|||
|
||||
navigator.serviceWorker.controller.postMessage({
|
||||
mode: 'cached',
|
||||
version: 1
|
||||
version: ver || version
|
||||
});
|
||||
|
||||
navigator.serviceWorker.addEventListener('message', e => {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// --- configurable ---
|
||||
const CACHE_VERSION = 'kiri-v001';
|
||||
const BUNDLE_URL = '/kiri/bundle.bin';
|
||||
const CACHE_VERSION = 'boot-v001';
|
||||
const BUNDLE_URL = '/boot/bundle.bin';
|
||||
const VERSION_KEY = '/__version__';
|
||||
|
||||
let mode = 'cached';
|
||||
|
|
@ -36,8 +36,7 @@ async function ensureVersion(incomingVersion) {
|
|||
log('no version stored → preload');
|
||||
needPreload = true;
|
||||
} else {
|
||||
const text = await existing.text();
|
||||
const stored = parseInt(text, 10);
|
||||
const stored = await existing.text();
|
||||
if (stored !== incomingVersion) {
|
||||
log(`version mismatch ${stored} ≠ ${incomingVersion} → preload`);
|
||||
needPreload = true;
|
||||
|
|
|
|||
Loading…
Reference in a new issue