-
Notifications
You must be signed in to change notification settings - Fork 56
/
Copy pathrollup.config.js
118 lines (115 loc) · 2.93 KB
/
rollup.config.js
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import path from 'path';
import sourcemaps from 'rollup-plugin-sourcemaps';
import typescript from 'rollup-plugin-typescript';
import resolve from '@rollup/plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
import pkg from './package.json'
const plugins = [
sourcemaps(),
resolve({
browser: true,
preferBuiltins: false
}),
typescript()
];
const compiled = (new Date()).toUTCString().replace(/GMT/g, 'UTC');
const banner = [
`/* eslint-disable */`,
` `,
`/*!`,
` * ${pkg.name} - v${pkg.version}`,
` * Compiled ${compiled}`,
` *`,
` * ${pkg.name} is licensed under the MIT License.`,
` * http://www.opensource.org/licenses/mit-license`,
` * `,
` * Copyright 2016-20, Ivan Popelyshev All Rights Reserved`,
` */`,
].join('\n');
const input = path.join(__dirname, './src/index.ts');
const freeze = false;
const sourcemap = true;
// @SukantPal: I'm going to publish @pixi-build-tools/rollup to handle all this crap. Stay tuned!
const external = [
'pixi.js',
'@pixi/core',
'@pixi/display',
'@pixi/constants',
'@pixi/sprite',
'@pixi/math',
'@pixi/utils',
'@pixi/graphics'
];
const globals = {
'@pixi/core': 'PIXI',
'@pixi/display': 'PIXI',
'@pixi/constants': 'PIXI',
'@pixi/sprite': 'PIXI',
'@pixi/math': 'PIXI',
'@pixi/utils': 'PIXI',
'@pixi/graphics': 'PIXI'
}
const name = 'pixi_tilemap';
const footer = `
PIXI.tilemap = PIXI.tilemap || {};
Object.assign(PIXI.tilemap, pixi_tilemap)
`;
export default [
{
plugins,
input,
external,
output: [
{
// FIXME: dist/pixi-tilemap.js for the CJS build is an anti-pattern for PixiJS plugins. This needs to be moved
// to lib/pixi-tilemap.js in the future.
banner,
file: path.join(__dirname, 'dist/pixi-tilemap.js'),
format: 'cjs',
freeze,
sourcemap
},
{
banner,
file: path.join(__dirname, 'lib/pixi-tilemap.es.js'),
format: 'esm',
freeze,
sourcemap
}
]
},
{
plugins,
input,
external,
output: [
{
name,
globals,
banner,
file: path.join(__dirname, 'dist/pixi-tilemap.umd.js'),
format: 'iife',
freeze,
sourcemap,
footer
}
]
},
{
plugins: [...plugins, terser()],
input,
external,
output: [
{
name,
globals,
banner,
file: path.join(__dirname, 'dist/pixi-tilemap.umd.min.js'),
format: 'iife',
freeze,
sourcemap,
footer
}
]
}
]