Start-GPT commited on
Commit
b227c1f
1 Parent(s): 311c3b3

Create webpack.config.js

Browse files
Files changed (1) hide show
  1. 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
+ };