UNPKG

@bn-digital/vite

Version:

Vite configuration used in BN Digital projects

135 lines 11.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.commonPlugins = void 0; const vite_1 = require("vite"); const vite_plugin_checker_1 = __importDefault(require("vite-plugin-checker")); const vite_plugin_fonts_1 = __importDefault(require("vite-plugin-fonts")); const vite_plugin_graphql_codegen_1 = __importDefault(require("vite-plugin-graphql-codegen")); const vite_plugin_info_1 = __importDefault(require("vite-plugin-info")); const vite_plugin_open_graph_1 = __importDefault(require("vite-plugin-open-graph")); const vite_plugin_pwa_1 = require("vite-plugin-pwa"); const vite_plugin_radar_1 = __importDefault(require("vite-plugin-radar")); const vite_tsconfig_paths_1 = __importDefault(require("vite-tsconfig-paths")); function resolveAnalyticsOptions({ analytics = undefined, gtm = undefined, ...extraOptions }) { return { analytics: process.env.GOOGLE_ANALYTICS_ID ? { disable: false, id: process.env.GOOGLE_ANALYTICS_ID, ...analytics } : analytics, gtm: process.env.GOOGLE_TAG_MANAGER_ID ? { id: process.env.GOOGLE_TAG_MANAGER_ID, ...gtm } : gtm, ...extraOptions, }; } function resolvePWAOptions(options) { return { injectRegister: "auto", strategies: "injectManifest", minify: true, ...options, }; } function resolveCheckPluginOptions(app, overrides) { const logLevel = app.mode !== "development" ? ["error"] : ["error", "warning"]; return (0, vite_plugin_checker_1.default)({ enableBuild: true, overlay: { position: "tr", initialIsOpen: false }, eslint: { lintCommand: "src/**/*.{ts,tsx}", dev: { overrideConfig: { fix: false, fixTypes: ["layout", "problem"], cache: true, cacheLocation: ".cache/eslintcache", }, logLevel, }, ...overrides.eslint, }, stylelint: { dev: { logLevel, overrideConfig: { cache: true, cacheLocation: ".cache/stylelintcache", allowEmptyInput: true, customSyntax: "postcss-less", fix: false, files: ["src/**/*.{less,css}"], config: { extends: "@bn-digital/stylelint-config" }, }, }, lintCommand: "src/**/*.{less,css}", ...overrides.stylelint, }, typescript: { root: app.workingDir, buildMode: app.mode !== "development" }, terminal: app.mode === "development", ...overrides, }); } function commonPlugins(app, pluginOptions) { const plugins = [(0, vite_1.splitVendorChunkPlugin)(), (0, vite_tsconfig_paths_1.default)({ root: app.workingDir })]; if (pluginOptions.lint) { const { enabled, ...checkOptions } = pluginOptions.lint; enabled && plugins.push(resolveCheckPluginOptions(app, checkOptions)); } if (pluginOptions.buildInfo) { const { enabled, ...buildInfoOptions } = pluginOptions.buildInfo; enabled && plugins.push((0, vite_plugin_info_1.default)({ meta: buildInfoOptions.meta })); } const fontsOptions = pluginOptions?.fonts; fontsOptions && plugins.push((0, vite_plugin_fonts_1.default)(fontsOptions)); const analyticsOptions = pluginOptions?.analytics && resolveAnalyticsOptions(pluginOptions.analytics); analyticsOptions && plugins.push((0, vite_plugin_radar_1.default)(analyticsOptions)); if (pluginOptions?.pwa) { const pwaOptions = resolvePWAOptions({ injectRegister: "inline", registerType: "autoUpdate", includeManifestIcons: true, mode: app.buildMode, ...pluginOptions?.pwa, workbox: { sourcemap: app.isDev, mode: app.buildMode, ignoreURLParametersMatching: [/\/admin$/, /\/graphql/, /\/upload$/, /\/api$/], disableDevLogs: app.isProd, cleanupOutdatedCaches: true, runtimeCaching: [ { urlPattern: ({ request }) => ["image", "font", "script", "video", "style"].find(it => request.destination === it), method: "GET", handler: "StaleWhileRevalidate", options: { cacheName: "assets-cache" }, }, { urlPattern: /\/graphql\/.*$/, handler: "StaleWhileRevalidate", options: { cacheName: "graphql-cache", precacheFallback: { fallbackURL: `https://${app.fqdn}/graphql` }, }, method: "POST", }, ], ...pluginOptions.pwa?.workbox, }, manifest: { name: app.name[0].toUpperCase().concat(app.name.slice(1)), short_name: app.name, scope: "/", start_url: "/", theme_color: "#7f7f7f", categories: ["Web Application"], ...pluginOptions?.pwa?.manifest, }, }); pluginOptions.pwa?.enabled && (0, vite_plugin_pwa_1.VitePWA)(pwaOptions).forEach(it => plugins.push(it)); } pluginOptions?.graphql && plugins.push((0, vite_plugin_graphql_codegen_1.default)({ runOnBuild: false, ...pluginOptions.graphql })); pluginOptions?.openGraph && plugins.push((0, vite_plugin_open_graph_1.default)(pluginOptions.openGraph)); return plugins; } exports.commonPlugins = commonPlugins; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBNkM7QUFDN0MsOEVBQTREO0FBQzVELDBFQUEwRDtBQUMxRCw4RkFBOEQ7QUFDOUQsd0VBQTZEO0FBQzdELG9GQUE2QztBQUM3QyxxREFBc0U7QUFDdEUsMEVBQXNGO0FBQ3RGLDhFQUFvRTtBQUlwRSxTQUFTLHVCQUF1QixDQUFDLEVBQy9CLFNBQVMsR0FBRyxTQUFTLEVBQ3JCLEdBQUcsR0FBRyxTQUFTLEVBQ2YsR0FBRyxZQUFZLEVBQ2lCO0lBQ2hDLE9BQU87UUFDTCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7WUFDeEMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLFNBQVMsRUFBRTtZQUN2RSxDQUFDLENBQUMsU0FBUztRQUNiLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUc7UUFDaEcsR0FBRyxZQUFZO0tBQ2hCLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFpQztJQUMxRCxPQUFPO1FBQ0wsY0FBYyxFQUFFLE1BQU07UUFDdEIsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixNQUFNLEVBQUUsSUFBSTtRQUNaLEdBQUcsT0FBTztLQUNYLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxHQUFhLEVBQUUsU0FBNEM7SUFDNUYsTUFBTSxRQUFRLEdBQW9CLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLENB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