Spaces:
Runtime error
Runtime error
Create webpack.config.js
Browse files- client/src/webpack.config.js +141 -0
client/src/webpack.config.js
ADDED
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const path = require('path');
|
2 |
+
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
|
3 |
+
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
4 |
+
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
5 |
+
|
6 |
+
module.exports = {
|
7 |
+
entry: {
|
8 |
+
main: './ts/main.ts',
|
9 |
+
// captioning: './ts/captioning.ts'
|
10 |
+
},
|
11 |
+
module: {
|
12 |
+
rules: [
|
13 |
+
{
|
14 |
+
test: /\.tsx?$/,
|
15 |
+
exclude: [
|
16 |
+
/node_modules/,
|
17 |
+
/ImageContentBox\.ts/,
|
18 |
+
/test\.ts/
|
19 |
+
// path.resolve(__dirname,'ts/vis/ImageContentBox.ts')
|
20 |
+
],
|
21 |
+
use: [{
|
22 |
+
loader: 'cache-loader'
|
23 |
+
},
|
24 |
+
{
|
25 |
+
loader: 'thread-loader',
|
26 |
+
options: {
|
27 |
+
// there should be 1 cpu for the fork-ts-checker-webpack-plugin
|
28 |
+
workers: require('os').cpus().length - 1,
|
29 |
+
},
|
30 |
+
},
|
31 |
+
{
|
32 |
+
loader: 'ts-loader',
|
33 |
+
options: {
|
34 |
+
happyPackMode: true // IMPORTANT! use happyPackMode mode to speed-up compilation and reduce errors reported to webpack
|
35 |
+
}
|
36 |
+
}
|
37 |
+
].slice(process.env.CI ? 2 : 0) // no optimizations for CIs
|
38 |
+
},
|
39 |
+
{
|
40 |
+
test: /\.s?css$/,
|
41 |
+
use: [
|
42 |
+
{
|
43 |
+
loader: MiniCssExtractPlugin.loader,
|
44 |
+
options: {
|
45 |
+
// you can specify a publicPath here
|
46 |
+
// by default it use publicPath in webpackOptions.output
|
47 |
+
// publicPath: '../'
|
48 |
+
|
49 |
+
}
|
50 |
+
},
|
51 |
+
{
|
52 |
+
loader: 'css-loader',
|
53 |
+
options: {
|
54 |
+
minimize: true,
|
55 |
+
sourceMap: true
|
56 |
+
}
|
57 |
+
},
|
58 |
+
{
|
59 |
+
loader: 'sass-loader',
|
60 |
+
options: {
|
61 |
+
sourceMap: true
|
62 |
+
}
|
63 |
+
}
|
64 |
+
]
|
65 |
+
|
66 |
+
},
|
67 |
+
{
|
68 |
+
test: /\.(png|jpg)$/,
|
69 |
+
loader: 'url-loader',
|
70 |
+
options: {
|
71 |
+
limit: 20000 //inline <= 10kb
|
72 |
+
}
|
73 |
+
},
|
74 |
+
{
|
75 |
+
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
76 |
+
loader: 'url-loader',
|
77 |
+
options: {
|
78 |
+
limit: 20000, //inline <= 20kb
|
79 |
+
mimetype: 'application/font-woff'
|
80 |
+
}
|
81 |
+
},
|
82 |
+
{
|
83 |
+
test: /\.svg(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
84 |
+
loader: 'url-loader',
|
85 |
+
options: {
|
86 |
+
limit: 10000, //inline <= 10kb
|
87 |
+
mimetype: 'image/svg+xml'
|
88 |
+
}
|
89 |
+
},
|
90 |
+
{
|
91 |
+
test: /\.(ttf|eot)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
92 |
+
loader: 'file-loader'
|
93 |
+
}
|
94 |
+
]
|
95 |
+
},
|
96 |
+
resolve: {
|
97 |
+
extensions: ['.ts', '.js']
|
98 |
+
},
|
99 |
+
plugins: [
|
100 |
+
new MiniCssExtractPlugin({
|
101 |
+
// Options similar to the same options in webpackOptions.output
|
102 |
+
// both options are optional
|
103 |
+
// filename: "style.css",
|
104 |
+
// chunkFilename: "chunk.css"
|
105 |
+
}),
|
106 |
+
new ForkTsCheckerWebpackPlugin({
|
107 |
+
checkSyntacticErrors: true
|
108 |
+
}),
|
109 |
+
new CopyWebpackPlugin([
|
110 |
+
{from: 'img', to: 'img'},
|
111 |
+
{from: "demo", to:"demo"}
|
112 |
+
]),
|
113 |
+
],
|
114 |
+
optimization: {
|
115 |
+
splitChunks: {
|
116 |
+
cacheGroups: {
|
117 |
+
vendor: {
|
118 |
+
test: /node_modules/,
|
119 |
+
chunks: "initial",
|
120 |
+
name: "vendor",
|
121 |
+
priority: 10,
|
122 |
+
enforce: true
|
123 |
+
}
|
124 |
+
}
|
125 |
+
}
|
126 |
+
},
|
127 |
+
output: {
|
128 |
+
filename: '[name].js',
|
129 |
+
path: path.resolve(__dirname, '../dist/')
|
130 |
+
},
|
131 |
+
devServer: {
|
132 |
+
port: 8090,
|
133 |
+
proxy: {
|
134 |
+
'/api/*': {
|
135 |
+
target: 'http://localhost:8080',
|
136 |
+
secure: false,
|
137 |
+
ws: true
|
138 |
+
}
|
139 |
+
}
|
140 |
+
}
|
141 |
+
};
|