1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | const rollup = require('rollup')
|
10 | const resolve = require('rollup-plugin-node-resolve')
|
11 | const commonjs = require('rollup-plugin-commonjs')
|
12 | const replace = require('rollup-plugin-replace')
|
13 | const json = require('rollup-plugin-json')
|
14 | const builtins = require('rollup-plugin-node-builtins')
|
15 | const globals = require('rollup-plugin-node-globals')
|
16 | const { terser } = require('rollup-plugin-terser')
|
17 |
|
18 | const React = require('react')
|
19 | const ReactDOM = require('react-dom')
|
20 |
|
21 | const run = async () => {
|
22 | const inputOptions = {
|
23 | input: `${__dirname}/../src/frontend/global-entry.js`,
|
24 | plugins: [
|
25 | resolve({
|
26 | extensions: ['.mjs', '.js', '.jsx', '.json'],
|
27 | jsnext: true,
|
28 | }),
|
29 | replace({
|
30 | 'process.env.NODE_ENV': JSON.stringify('production'),
|
31 | 'process.env.IS_BROWSER': 'true',
|
32 | 'process.stderr.fd': 'false',
|
33 | }),
|
34 | json(),
|
35 | commonjs({
|
36 | include: ['node_modules/**'],
|
37 | namedExports: {
|
38 | react: Object.keys(React),
|
39 | 'react-dom': Object.keys(ReactDOM),
|
40 | 'react-is': ['isValidElementType', 'isContextConsumer', 'isElement', 'ForwardRef'],
|
41 | },
|
42 | ignoreGlobal: true,
|
43 | }),
|
44 | globals(),
|
45 | builtins(),
|
46 | terser(),
|
47 | ],
|
48 | }
|
49 | const bundle = await rollup.rollup(inputOptions)
|
50 |
|
51 | return bundle.write({
|
52 | format: 'iife',
|
53 | name: 'globals',
|
54 | globals: {
|
55 | react: 'React',
|
56 | redux: 'Redux',
|
57 | axios: 'axios',
|
58 | recharts: 'Recharts',
|
59 | 'styled-components': 'styled',
|
60 | 'react-dom': 'ReactDOM',
|
61 | 'prop-types': 'PropTypes',
|
62 | 'react-redux': 'ReactRedux',
|
63 | 'react-router': 'ReactRouter',
|
64 | 'react-router-dom': 'ReactRouterDOM',
|
65 | },
|
66 | file: `${__dirname}/../src/frontend/assets/scripts/global-bundle.js`,
|
67 | })
|
68 | }
|
69 |
|
70 | run()
|