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
|
logs
|
||||||
mod
|
mod
|
||||||
node_modules
|
node_modules
|
||||||
|
pack
|
||||||
package-lock.json
|
package-lock.json
|
||||||
three.js
|
three.js
|
||||||
tmp
|
tmp
|
||||||
pack
|
web/boot/bundle.bin
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"outputs": {
|
"outputs": {
|
||||||
"bundle": "./web/kiri/bundle.bin"
|
"bundle": "./web/boot/bundle.bin"
|
||||||
},
|
},
|
||||||
"inputs": [
|
"inputs": [
|
||||||
{ "root": "./web", "prefix": "" },
|
{ "root": "./web", "prefix": "" },
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import path from 'path';
|
||||||
import uglify from 'uglify-js';
|
import uglify from 'uglify-js';
|
||||||
import { Buffer } from 'buffer';
|
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
|
const compress = process.env.UGLIFY ? true : false
|
||||||
|
|
||||||
// --- recursive directory walker (follows symlinks safely) ---
|
// --- recursive directory walker (follows symlinks safely) ---
|
||||||
|
|
@ -42,6 +42,9 @@ let offset = 0;
|
||||||
let cache = new Map();
|
let cache = new Map();
|
||||||
|
|
||||||
for (const { file, virt } of entries) {
|
for (const { file, virt } of entries) {
|
||||||
|
if (file.endsWith('/bundle.bin')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
let record = cache.get(file);
|
let record = cache.get(file);
|
||||||
if (record) {
|
if (record) {
|
||||||
// console.log({ dup: file });
|
// console.log({ dup: file });
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,10 @@
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script type="module">
|
||||||
|
import { version } from '/lib/moto/license.js';
|
||||||
(async () => {
|
(async () => {
|
||||||
|
const ver = location.search.slice(1);
|
||||||
const reg = await navigator.serviceWorker.register('/boot/service.js', { scope: '/' });
|
const reg = await navigator.serviceWorker.register('/boot/service.js', { scope: '/' });
|
||||||
await reg.update();
|
await reg.update();
|
||||||
await navigator.serviceWorker.ready;
|
await navigator.serviceWorker.ready;
|
||||||
|
|
@ -33,7 +35,7 @@
|
||||||
|
|
||||||
navigator.serviceWorker.controller.postMessage({
|
navigator.serviceWorker.controller.postMessage({
|
||||||
mode: 'cached',
|
mode: 'cached',
|
||||||
version: 1
|
version: ver || version
|
||||||
});
|
});
|
||||||
|
|
||||||
navigator.serviceWorker.addEventListener('message', e => {
|
navigator.serviceWorker.addEventListener('message', e => {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// --- configurable ---
|
// --- configurable ---
|
||||||
const CACHE_VERSION = 'kiri-v001';
|
const CACHE_VERSION = 'boot-v001';
|
||||||
const BUNDLE_URL = '/kiri/bundle.bin';
|
const BUNDLE_URL = '/boot/bundle.bin';
|
||||||
const VERSION_KEY = '/__version__';
|
const VERSION_KEY = '/__version__';
|
||||||
|
|
||||||
let mode = 'cached';
|
let mode = 'cached';
|
||||||
|
|
@ -36,8 +36,7 @@ async function ensureVersion(incomingVersion) {
|
||||||
log('no version stored → preload');
|
log('no version stored → preload');
|
||||||
needPreload = true;
|
needPreload = true;
|
||||||
} else {
|
} else {
|
||||||
const text = await existing.text();
|
const stored = await existing.text();
|
||||||
const stored = parseInt(text, 10);
|
|
||||||
if (stored !== incomingVersion) {
|
if (stored !== incomingVersion) {
|
||||||
log(`version mismatch ${stored} ≠ ${incomingVersion} → preload`);
|
log(`version mismatch ${stored} ≠ ${incomingVersion} → preload`);
|
||||||
needPreload = true;
|
needPreload = true;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue