forked from jupyterlab/jupyterlab-module-federation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.base.js
80 lines (73 loc) · 2.54 KB
/
webpack.config.base.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
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
const path = require('path');
const webpack = require('webpack');
const rules = [
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
{ test: /\.html$/, use: 'file-loader' },
{ test: /\.md$/, use: 'raw-loader' },
{ test: /\.(jpg|png|gif)$/, use: 'file-loader' },
{ test: /\.js.map$/, use: 'file-loader' },
{
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
use: 'url-loader?limit=10000&mimetype=application/font-woff'
},
{
test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
use: 'url-loader?limit=10000&mimetype=application/font-woff'
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
use: 'url-loader?limit=10000&mimetype=application/octet-stream'
},
{ test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, use: 'file-loader' },
{
// In .css files, svg is loaded as a data URI.
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
issuer: /\.css$/,
use: {
loader: 'svg-url-loader',
options: { encoding: 'none', limit: 10000 }
}
},
{
// In .ts and .tsx files (both of which compile to .js), svg files
// must be loaded as a raw string instead of data URIs.
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
issuer: /\.js$/,
use: {
loader: 'raw-loader'
}
}
];
// Map Phosphor files to Lumino files.
const stylePath = path.join(path.dirname(require.resolve('@lumino/widgets/package.json')), 'style')
const phosphorAlias = {
'@phosphor/algorithm$': require.resolve('@lumino/algorithm'),
'@phosphor/application$': require.resolve('@lumino/application'),
'@phosphor/commands$': require.resolve('@lumino/commands'),
'@phosphor/coreutils$': require.resolve('@lumino/coreutils'),
'@phosphor/disposable$': require.resolve('@lumino/disposable'),
'@phosphor/domutils$': require.resolve('@lumino/domutils'),
'@phosphor/dragdrop$': require.resolve('@lumino/dragdrop'),
'@phosphor/dragdrop/style': stylePath,
'@phosphor/messaging$': require.resolve('@lumino/messaging'),
'@phosphor/properties$': require.resolve('@lumino/properties'),
'@phosphor/signaling': require.resolve('@lumino/signaling'),
'@phosphor/widgets/style': stylePath,
'@phosphor/virtualdom$': require.resolve('@lumino/virtualdom'),
'@phosphor/widgets$': require.resolve('@lumino/widgets')
}
module.exports = {
devtool: 'source-map',
bail: true,
mode: 'development',
module: { rules },
resolve: { alias: { url: false, buffer: false, ...phosphorAlias } },
plugins: [
new webpack.DefinePlugin({
'process.env': '{}',
process: {}
})
]
}