Welcome to mirror list, hosted at ThFree Co, Russian Federation.

rollup.config.js - gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0e31b5d5fbf739cb342774edc3855066d158b5cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const inject = require('@rollup/plugin-inject');
const json = require('@rollup/plugin-json');
const nodePolyfills = require('rollup-plugin-polyfill-node');
const { nodeResolve } = require('@rollup/plugin-node-resolve');
const replace = require('@rollup/plugin-replace');
const glob = require('glob');
const commonjs = require('@rollup/plugin-commonjs');
const { babel } = require('@rollup/plugin-babel');
const importResolver = require('rollup-plugin-import-resolver');
const css = require('rollup-plugin-import-css');
const url = require('@rollup/plugin-url');
const vue = require('rollup-plugin-vue');
const { terser } = require('rollup-plugin-terser');

function mapDirectory(file) {
  return file.replace('content/', 'public/');
}

module.exports = glob.sync('content/frontend/**/*.js').map((file) => ({
  input: file,
  output: {
    file: mapDirectory(file),
    format: 'iife',
    name: file,
  },
  plugins: [
    nodePolyfills(),
    nodeResolve({ browser: true, preferBuiltins: false }),
    commonjs({
      requireReturnsDefault: 'preferred',
    }),
    vue(),
    url({
      destDir: 'public/assets/images',
      publicPath: '/assets/images/',
      fileName: 'icons.svg',
    }),
    inject({
      exclude: 'node_modules/**',
    }),
    babel({
      exclude: 'node_modules/**',
      babelHelpers: 'bundled',
    }),
    json(),
    css(),
    importResolver({
      alias: {
        vue: './node_modules/vue/dist/vue.esm.browser.min.js',
      },
    }),
    replace({
      preventAssignment: true,
      'process.env.NODE_ENV': JSON.stringify('production'),
    }),
    terser(),
  ],
  onwarn(warning, warn) {
    // Ignore specified circular dependency warnings.
    // https://github.com/d3/d3-selection/issues/168
    const ignoreCircular = [
      'd3-selection',
      'd3-interpolate',
      'd3-transition',
      'd3-voronoi',
      'dagre-d3-es',
    ];
    if (
      warning.code === 'CIRCULAR_DEPENDENCY' &&
      ignoreCircular.some((d) => warning.message.includes(d))
    ) {
      return;
    }
    warn(warning);
  },
}));