-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
48 lines (46 loc) · 1.49 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
const resolve = require('path').resolve;
module.exports = env => {
let filename = '[name]-experimental.js';
let path = resolve(__dirname, 'bin');
if (env.commit) {
filename = '[name].js';
} else if (env.experimental) {
filename = '[name]-super-experimental.js';
} else if (env.tests) {
filename = '[name].js';
path = resolve(__dirname, 'built');
}
return {
entry: {
mpl: './mpl.ts',
'mpl-interpreter': './mpl-interpreter.ts',
'mpl-loader-raw': './mpl-loader.ts',
test: './test.ts',
'debug-test-case': './debug-test-case.ts',
benchmark: './benchmark.ts',
'test-case-table': './test-case-table.ts',
},
target: 'node',
devtool: false,
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/,
},
{
test: /\.mpl$/,
use: {
loader: './bin/mpl-loader.js',
options: { experimental: env.experimental },
},
exclude: /node_modules/,
},
],
},
resolve: { extensions: ['.ts', '.js'] },
output: { filename, path, library: 'mplLoader', libraryTarget: 'umd' },
externals: { ava: 'ava', 'spawn-sync': 'spawn-sync' },
};
};