forked from carolinfiedler/webgl-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.js
51 lines (47 loc) · 1.43 KB
/
webpack.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
const path = require('path');
const webpack = require('webpack');
module.exports = {
context: __dirname + '/source',
cache: true,
devtool: 'source-map',
plugins: [],
entry: {
'test-renderer': ['require.ts', 'test-renderer/example.ts'],
'camera-navigation': ['require.ts', 'camera-navigation/example.ts'],
'cornell-box': ['require.ts', 'cornell-box/example.ts'],
'sky-triangle': ['require.ts', 'sky-triangle/example.ts'],
'cubescape': ['require.ts', 'cubescape/example.ts'],
// 'openll-showcase': ['require.ts', 'openll-showcase/example.ts'],
},
externals: {
'webgl-operate': 'gloperate'
},
output: {
path: __dirname + '/build',
filename: '[name].js',
libraryTarget: 'umd',
umdNamedDefine: true
},
resolve: {
modules: [__dirname + '/node_modules', __dirname + '/source'],
extensions: ['.ts', '.tsx', '.js']
},
module: {
rules: [
{
test: /\.tsx?$/,
use: {
loader: 'ts-loader',
}
},
{
test: /\.(glsl|vert|frag)$/,
use: { loader: 'webpack-glsl-loader' },
}]
}
};
if (process.env.ANALYZE) {
const analyzer = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
module.exports.cache = false;
module.exports.plugins.push(new analyzer());
}