stonex

Форк
0
/
rollup.config.js 
100 строк · 2.1 Кб
1
const packageJson = require('./package.json')
2
const resolve = require('rollup-plugin-node-resolve')
3
const replace = require('rollup-plugin-replace')
4
const terser = require('rollup-plugin-terser').terser
5
const typescript = require('rollup-plugin-typescript')
6
// const commonjs = require('rollup-plugin-commonjs')
7

8
const deps = [
9
  ...Object.keys(packageJson.dependencies || {}),
10
  ...Object.keys(packageJson.peerDependencies || {}),
11
]
12

13
const inputOutputConfig = (outputFile, outputFormat, commonOutput = {}) => ({
14
  input: 'src/index.ts',
15
  output: {
16
    file: `${outputFile}`,
17
    format: outputFormat,
18
    ...commonOutput,
19
  },
20
})
21

22
const productionBuildPlugins = [
23
  replace({
24
    'process.env.NODE_ENV': JSON.stringify('production'),
25
  }),
26
  terser({
27
    compress: {
28
      pure_getters: true,
29
      unsafe: true,
30
      unsafe_comps: true,
31
      warnings: false,
32
    },
33
  }),
34
]
35

36
module.exports = [
37
  // Common JS builds
38
  {
39
    ...inputOutputConfig('lib/stonex.js', 'cjs'),
40
    external: deps,
41
    plugins: [typescript()],
42
  },
43
  {
44
    ...inputOutputConfig('lib/stonex.min.js', 'cjs'),
45
    external: deps,
46
    plugins: [typescript(), ...productionBuildPlugins],
47
  },
48

49
  // EcmaScript builds
50
  {
51
    ...inputOutputConfig('es/stonex.js', 'es'),
52
    external: deps,
53
    plugins: [typescript()],
54
  },
55
  {
56
    ...inputOutputConfig('es/stonex.mjs', 'es'),
57
    external: deps,
58
    plugins: [
59
      resolve({
60
        jsnext: true,
61
      }),
62
      typescript(),
63
      ...productionBuildPlugins,
64
    ],
65
  },
66

67
  // UMD builds
68
  {
69
    ...inputOutputConfig('dist/stonex.js', 'umd', {
70
      name: 'Stonex',
71
    }),
72
    external: deps,
73
    plugins: [
74
      resolve({
75
        jsnext: true,
76
      }),
77
      typescript({
78
        exclude: 'node_modules/**',
79
      }),
80
      replace({
81
        'process.env.NODE_ENV': JSON.stringify('development'),
82
      }),
83
    ],
84
  },
85
  {
86
    ...inputOutputConfig('dist/stonex.min.js', 'umd', {
87
      name: 'Stonex',
88
    }),
89
    external: deps,
90
    plugins: [
91
      resolve({
92
        jsnext: true,
93
      }),
94
      typescript({
95
        exclude: 'node_modules/**',
96
      }),
97
      ...productionBuildPlugins,
98
    ],
99
  },
100
]
101

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

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

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

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