65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import react from "@vitejs/plugin-react";
|
|
import { resolve } from "path";
|
|
import { ManifestV3Export } from "@crxjs/vite-plugin";
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
import { defineConfig, BuildOptions } from "vite";
|
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
import { stripDevIcons, crxI18n } from "./custom-vite-plugins";
|
|
import manifest from "./manifest.json";
|
|
import devManifest from "./manifest.dev.json";
|
|
import pkg from "./package.json";
|
|
import { ProviderList } from "./src/providers/provider.list";
|
|
|
|
const isDev = process.env.NODE_ENV === "development";
|
|
// set this flag to true, if you want localization support
|
|
const localize = false;
|
|
|
|
const merge = isDev ? devManifest : ({} as ManifestV3Export);
|
|
const { matches, ...rest } = manifest?.content_scripts?.[0] || {};
|
|
|
|
export const baseManifest = {
|
|
...manifest,
|
|
host_permissions: [
|
|
...ProviderList.map((p) => p.baseUrl + "/"),
|
|
import.meta.env?.FRONTEND_URL || process?.env?.FRONTEND_URL + '/*',
|
|
],
|
|
permissions: [...(manifest.permissions || [])],
|
|
content_scripts: [
|
|
{
|
|
matches: ProviderList.reduce(
|
|
(all, p) => [...all, p.baseUrl + "/*"],
|
|
[
|
|
import.meta.env?.FRONTEND_URL || process?.env?.FRONTEND_URL + '/*',
|
|
],
|
|
),
|
|
...rest,
|
|
},
|
|
],
|
|
version: pkg.version,
|
|
...merge,
|
|
...(localize
|
|
? {
|
|
name: "__MSG_extName__",
|
|
description: "__MSG_extDescription__",
|
|
default_locale: "en",
|
|
}
|
|
: {}),
|
|
} as ManifestV3Export;
|
|
|
|
export const baseBuildOptions: BuildOptions = {
|
|
sourcemap: isDev,
|
|
emptyOutDir: !isDev,
|
|
};
|
|
|
|
export default defineConfig({
|
|
envPrefix: ["NEXT_PUBLIC_", "FRONTEND_URL"],
|
|
plugins: [
|
|
tailwindcss(),
|
|
tsconfigPaths(),
|
|
react(),
|
|
stripDevIcons(isDev),
|
|
crxI18n({ localize, src: "./src/locales" }),
|
|
],
|
|
publicDir: resolve(__dirname, "public"),
|
|
});
|