🎉
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import nodeResolve from "@rollup/plugin-node-resolve";
|
||||
import babel from "@rollup/plugin-babel";
|
||||
import { rollupPluginHTML as html } from "@web/rollup-plugin-html";
|
||||
import { importMetaAssets } from "@web/rollup-plugin-import-meta-assets";
|
||||
import esbuild from "rollup-plugin-esbuild";
|
||||
import { generateSW } from "rollup-plugin-workbox";
|
||||
import { join } from "node:path";
|
||||
|
||||
export default {
|
||||
input: "index.html",
|
||||
output: {
|
||||
entryFileNames: "[hash].js",
|
||||
chunkFileNames: "[hash].js",
|
||||
assetFileNames: "[hash][extname]",
|
||||
format: "es",
|
||||
dir: "dist",
|
||||
},
|
||||
preserveEntrySignatures: false,
|
||||
|
||||
plugins: [
|
||||
/** Enable using HTML as rollup entrypoint */
|
||||
html({
|
||||
minify: true,
|
||||
injectServiceWorker: true,
|
||||
serviceWorkerPath: "dist/sw.js",
|
||||
}),
|
||||
/** Resolve bare module imports */
|
||||
nodeResolve(),
|
||||
/** Minify JS, compile JS to a lower language target */
|
||||
esbuild({
|
||||
minify: true,
|
||||
target: ["chrome64", "firefox67", "safari11.1"],
|
||||
}),
|
||||
/** Bundle assets references via import.meta.url */
|
||||
importMetaAssets(),
|
||||
/** Minify html and css tagged template literals */
|
||||
babel({
|
||||
babelHelpers: "bundled",
|
||||
plugins: [
|
||||
[
|
||||
"babel-plugin-template-html-minifier",
|
||||
{
|
||||
modules: { lit: ["html", { name: "css", encapsulation: "style" }] },
|
||||
failOnError: false,
|
||||
strictCSS: true,
|
||||
htmlMinifier: {
|
||||
collapseWhitespace: true,
|
||||
conservativeCollapse: true,
|
||||
removeComments: true,
|
||||
caseSensitive: true,
|
||||
minifyCSS: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
],
|
||||
}),
|
||||
/** Create and inject a service worker */
|
||||
generateSW({
|
||||
globIgnores: ["polyfills/*.js", "nomodule-*.js"],
|
||||
navigateFallback: "/index.html",
|
||||
// where to output the generated sw
|
||||
swDest: join("dist", "sw.js"),
|
||||
// directory to match patterns against to be precached
|
||||
globDirectory: join("dist"),
|
||||
// cache any html js and css by default
|
||||
globPatterns: ["**/*.{html,js,css,webmanifest}"],
|
||||
skipWaiting: true,
|
||||
clientsClaim: true,
|
||||
runtimeCaching: [{ urlPattern: "polyfills/*.js", handler: "CacheFirst" }],
|
||||
}),
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user