Use published sw.js from wabac.js instead of rebuilding a custom version. (#223)
* sw: instead of rebuilding sw.js with slightly different settings (baked in index.html + ruffle.js cache), can now just use the published sw.js release with custom queryArgs, injectScripts=ruffle/ruffle.js index.html is cached automatically on-load webpack: for dev server, still build 'sw.js' locally to allow dynamic updates when developing on a linked wabac.js remove src/sw.js, as no longer used, just importing from wabac.js directly bump to 1.8.9
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "replaywebpage",
|
"name": "replaywebpage",
|
||||||
"productName": "ReplayWeb.page",
|
"productName": "ReplayWeb.page",
|
||||||
"version": "1.8.8",
|
"version": "1.8.9",
|
||||||
"description": "Serverless Web Archive Replay",
|
"description": "Serverless Web Archive Replay",
|
||||||
"repository": "https://github.com/webrecorder/replayweb.page",
|
"repository": "https://github.com/webrecorder/replayweb.page",
|
||||||
"homepage": "https://replayweb.page/",
|
"homepage": "https://replayweb.page/",
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "replaywebpage",
|
"name": "replaywebpage",
|
||||||
"productName": "ReplayWeb.page",
|
"productName": "ReplayWeb.page",
|
||||||
"version": "1.8.8",
|
"version": "1.8.9",
|
||||||
"description": "Serverless Web Archive Replay",
|
"description": "Serverless Web Archive Replay",
|
||||||
"repository": "https://github.com/webrecorder/replayweb.page",
|
"repository": "https://github.com/webrecorder/replayweb.page",
|
||||||
"homepage": "https://replayweb.page/",
|
"homepage": "https://replayweb.page/",
|
||||||
|
|||||||
+11
-1
@@ -419,7 +419,17 @@ class ReplayWebApp extends LitElement {
|
|||||||
this.initRoute();
|
this.initRoute();
|
||||||
|
|
||||||
// service worker name
|
// service worker name
|
||||||
const name = this.swName + (this.useRuffle ? "?ruffle=1" : "");
|
let name = this.swName;
|
||||||
|
|
||||||
|
const qp = new URLSearchParams();
|
||||||
|
let query = "";
|
||||||
|
if (this.useRuffle) {
|
||||||
|
qp.set("injectScripts", "ruffle/ruffle.js");
|
||||||
|
}
|
||||||
|
query = qp.toString();
|
||||||
|
if (query.length) {
|
||||||
|
name += "?" + query;
|
||||||
|
}
|
||||||
|
|
||||||
this.swmanager = new SWManager({ name, appName: this.appName });
|
this.swmanager = new SWManager({ name, appName: this.appName });
|
||||||
this.swmanager
|
this.swmanager
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
import INDEX_HTML from "../index.html";
|
|
||||||
|
|
||||||
import { SWReplay } from "@webrecorder/wabac/src/swmain";
|
|
||||||
|
|
||||||
import { WorkerLoader } from "@webrecorder/wabac/src/loaders";
|
|
||||||
|
|
||||||
if (self.registration) {
|
|
||||||
const staticData = new Map();
|
|
||||||
|
|
||||||
const prefix = self.registration.scope;
|
|
||||||
|
|
||||||
staticData.set(prefix, { type: "text/html", content: INDEX_HTML });
|
|
||||||
staticData.set(prefix + "index.html", {
|
|
||||||
type: "text/html",
|
|
||||||
content: INDEX_HTML,
|
|
||||||
});
|
|
||||||
|
|
||||||
const sp = new URLSearchParams(self.location.search);
|
|
||||||
|
|
||||||
const defaultConfig = {};
|
|
||||||
|
|
||||||
if (sp.get("ruffle") == "1") {
|
|
||||||
defaultConfig.injectScripts = ["ruffle/ruffle.js"];
|
|
||||||
}
|
|
||||||
|
|
||||||
self.sw = new SWReplay({ staticData, defaultConfig });
|
|
||||||
} else {
|
|
||||||
new WorkerLoader(self);
|
|
||||||
}
|
|
||||||
+21
-10
@@ -77,15 +77,30 @@ const electronPreloadConfig = (/*env, argv*/) => {
|
|||||||
|
|
||||||
|
|
||||||
const browserConfig = (/*env, argv*/) => {
|
const browserConfig = (/*env, argv*/) => {
|
||||||
|
const isDevServer = process.env.WEBPACK_SERVE;
|
||||||
|
|
||||||
|
const entry = {
|
||||||
|
"ui": "./src/ui.js"
|
||||||
|
};
|
||||||
|
|
||||||
|
const patterns = [
|
||||||
|
{ from: "package.json", to: "_data/package.json" }
|
||||||
|
];
|
||||||
|
|
||||||
|
if (isDevServer) {
|
||||||
|
entry["sw"] = "@webrecorder/wabac/src/sw.js";
|
||||||
|
} else {
|
||||||
|
patterns.push(
|
||||||
|
{ from: "node_modules/@webrecorder/wabac/dist/sw.js", to: "sw.js"}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
target: "web",
|
target: "web",
|
||||||
mode: "production",
|
mode: "production",
|
||||||
resolve: {fallback: { "crypto": false }},
|
resolve: {fallback: { "crypto": false }},
|
||||||
entry: {
|
entry,
|
||||||
"ui": "./src/ui.js",
|
|
||||||
"sw": "./src/sw.js"
|
|
||||||
},
|
|
||||||
|
|
||||||
optimization,
|
optimization,
|
||||||
|
|
||||||
output: {
|
output: {
|
||||||
@@ -130,11 +145,7 @@ const browserConfig = (/*env, argv*/) => {
|
|||||||
__VERSION__: JSON.stringify(package_json.version),
|
__VERSION__: JSON.stringify(package_json.version),
|
||||||
}),
|
}),
|
||||||
new webpack.BannerPlugin(BANNER_TEXT),
|
new webpack.BannerPlugin(BANNER_TEXT),
|
||||||
new CopyPlugin({
|
new CopyPlugin({ patterns })
|
||||||
patterns: [
|
|
||||||
{ from: "package.json", to: "_data/package.json" }
|
|
||||||
]
|
|
||||||
}),
|
|
||||||
],
|
],
|
||||||
|
|
||||||
module: {
|
module: {
|
||||||
|
|||||||
Reference in New Issue
Block a user