Keycloak

Форк
0
/
rollup.config.ts 
81 строка · 1.9 Кб
1
import commonjs from "@rollup/plugin-commonjs";
2
import inject from "@rollup/plugin-inject";
3
import { nodeResolve } from "@rollup/plugin-node-resolve";
4
import terser from '@rollup/plugin-terser';
5
import path from "node:path";
6
import type { OutputOptions, RollupOptions } from "rollup";
7
import { defineConfig } from "rollup";
8

9
interface DefineOptionsArgs {
10
  file: string;
11
  name: string;
12
  amdId: string;
13
}
14

15
function defineOptions({
16
  file,
17
  name,
18
  amdId,
19
}: DefineOptionsArgs): RollupOptions[] {
20
  const sourceDir = "src";
21
  const targetDir = "dist";
22
  const commonOptions = {
23
    input: path.join(sourceDir, `${file}.js`),
24
    plugins: [commonjs(), nodeResolve()],
25
  } satisfies RollupOptions;
26

27
  const umdOutput: OutputOptions = {
28
    format: "umd",
29
    name,
30
    amd: { id: amdId },
31
  };
32

33
  return [
34
    // Modern ES module variant, with externalized dependencies.
35
    {
36
      ...commonOptions,
37
      output: [
38
        {
39
          file: path.join(targetDir, `${file}.mjs`),
40
        },
41
      ],
42
      external: ["js-sha256", "jwt-decode"],
43
    },
44
    // Legacy Universal Module Definition, or “UMD”, with inlined dependencies.
45
    {
46
      ...commonOptions,
47
      output: [
48
        {
49
          ...umdOutput,
50
          file: path.join(targetDir, `${file}.js`),
51
        },
52
        {
53
          ...umdOutput,
54
          file: path.join(targetDir, `${file}.min.js`),
55
          sourcemap: true,
56
          sourcemapExcludeSources: true,
57
          plugins: [terser()],
58
        },
59
      ],
60
      plugins: [
61
        ...commonOptions.plugins,
62
        inject({
63
          Promise: ["es6-promise/dist/es6-promise.min.js", "Promise"],
64
        }),
65
      ],
66
    },
67
  ];
68
}
69

70
export default defineConfig([
71
  ...defineOptions({
72
    file: "keycloak",
73
    name: "Keycloak",
74
    amdId: "keycloak",
75
  }),
76
  ...defineOptions({
77
    file: "keycloak-authz",
78
    name: "KeycloakAuthorization",
79
    amdId: "keycloak-authorization",
80
  }),
81
]);
82

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.