Skip to content

Commit 4c32a0c

Browse files
committed
build: use rollup for better tree-shaking
1 parent 59a2883 commit 4c32a0c

File tree

3 files changed

+59
-2
lines changed

3 files changed

+59
-2
lines changed

.babelrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"presets": [
33
["@babel/preset-env",
44
{
5+
"modules": false,
56
"targets": {
67
"browsers": [
78
"> 1%",
@@ -27,4 +28,4 @@
2728
}
2829
]
2930
]
30-
}
31+
}

package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"name": "spritejs",
33
"version": "3.7.27",
44
"description": "A cross platform high-performance graphics system.",
5+
"module": "dist/spritejs.esm.js",
56
"main": "dist/spritejs.js",
67
"typings": "typings/spritejs.d.ts",
7-
"module": "lib/index.js",
88
"scripts": {
99
"test": "jest --coverage",
1010
"test:build": "jest --updateSnapshot --coverage",
@@ -42,6 +42,10 @@
4242
"@babel/register": "^7.8.6",
4343
"@demosify/core": "^0.6.0",
4444
"@purtuga/esm-webpack-plugin": "^1.2.1",
45+
"@rollup/plugin-babel": "^5.2.1",
46+
"@rollup/plugin-commonjs": "^15.1.0",
47+
"@rollup/plugin-json": "^4.1.0",
48+
"@rollup/plugin-node-resolve": "^9.0.0",
4549
"babel-eslint": "^10.0.1",
4650
"babel-loader": "^8.0.6",
4751
"babel-plugin-transform-gl-matrix": "^0.6.0",
@@ -56,6 +60,9 @@
5660
"node-canvas-webgl": "^0.2.6",
5761
"raw-loader": "^3.1.0",
5862
"request": "^2.88.0",
63+
"rollup": "^2.29.0",
64+
"rollup-plugin-node-globals": "^1.4.0",
65+
"rollup-plugin-string": "^3.0.0",
5966
"webpack": "^4.33.0",
6067
"webpack-cli": "^3.3.4",
6168
"webpack-dev-server": "^3.11.0"

rollup.config.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import resolve from '@rollup/plugin-node-resolve';
2+
import commonjs from '@rollup/plugin-commonjs';
3+
import babel from '@rollup/plugin-babel';
4+
import json from '@rollup/plugin-json';
5+
import {string} from 'rollup-plugin-string';
6+
import globals from 'rollup-plugin-node-globals';
7+
8+
const pkg = require('./package.json');
9+
10+
/** @type {import('rollup').RollupOptions} */
11+
const config = {
12+
input: './src/index',
13+
output: [
14+
{
15+
format: 'es',
16+
sourcemap: true,
17+
file: pkg.module,
18+
},
19+
{
20+
format: 'umd',
21+
name: 'spritejs',
22+
sourcemap: true,
23+
file: pkg.main,
24+
},
25+
],
26+
plugins: [
27+
babel({
28+
babelHelpers: 'runtime',
29+
skipPreflightCheck: true,
30+
exclude: /node_modules/,
31+
}),
32+
json(),
33+
resolve(),
34+
commonjs({
35+
transformMixedEsModules: true,
36+
}),
37+
string({
38+
include: ['**/*.frag', '**/*.vert', '**/*.glsl'],
39+
}),
40+
globals({
41+
process: false,
42+
buffer: false,
43+
dirname: false,
44+
filename: false,
45+
}),
46+
],
47+
};
48+
49+
export default config;

0 commit comments

Comments
 (0)