mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-22 19:14:52 +01:00
52 lines
1.9 KiB
JavaScript
52 lines
1.9 KiB
JavaScript
const path = require("path");
|
|
const { defineConfig } = require("vite");
|
|
const mergeOptions = require("merge-options").bind({ concatArrays: true });
|
|
const { commonOptions } = require("./vite.common-config.js");
|
|
const manifest = require("./package.json");
|
|
const {
|
|
injectServiceWorker,
|
|
createPlaceholderValues,
|
|
} = require("./scripts/build-plugins/service-worker");
|
|
|
|
const externalDependencies = Object.keys(manifest.dependencies)
|
|
// just in case for safety in case fake-indexeddb wouldn't be
|
|
// treeshake'd out of the bundle
|
|
.concat(Object.keys(manifest.devDependencies))
|
|
// bundle bs58 because it uses buffer indirectly, which is a pain to bundle,
|
|
// so we don't annoy our library users with it.
|
|
.filter((d) => d !== "bs58");
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
const options = commonOptions(mode);
|
|
const definePlaceholders = createPlaceholderValues(mode);
|
|
return mergeOptions(options, {
|
|
root: "src/",
|
|
plugins: [
|
|
injectServiceWorker("./src/platform/web/sw.js", () => [], {
|
|
lib: {
|
|
DEFINE_GLOBAL_HASH: definePlaceholders.DEFINE_GLOBAL_HASH,
|
|
},
|
|
sw: definePlaceholders,
|
|
}),
|
|
],
|
|
build: {
|
|
lib: {
|
|
entry: path.resolve(__dirname, "src/lib.ts"),
|
|
formats: ["cjs", "es"],
|
|
fileName: (format) => `hydrogen.${format}.js`,
|
|
},
|
|
minify: false,
|
|
sourcemap: false,
|
|
outDir: "../target/lib-build",
|
|
// don't bundle any dependencies, they should be imported/required
|
|
rollupOptions: {
|
|
external(id) {
|
|
return externalDependencies.some(
|
|
(d) => id === d || id.startsWith(d + "/")
|
|
);
|
|
},
|
|
},
|
|
},
|
|
});
|
|
});
|