-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathwebpack.config.js
123 lines (113 loc) · 3.11 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
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
const ExtractTextPlugin = require("extract-text-webpack-plugin")
const path = require('path')
const webpack = require('webpack')
const ts = { test: /\.ts$/, loader: 'ts-loader' }
const scss = {
test: /\.sass$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{ loader: "css-loader", options: {url: false} },
{
loader: 'sass-loader',
options: { indentedSyntax: true }
}
]
})
}
const css = {
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [{ loader: "css-loader", options: {url: false} }]
})
}
const config_devtools = {
target: 'web',
entry: {
'background.js' : path.resolve(__dirname, 'src/devtools/background.ts'),
'panel.js' : path.resolve(__dirname, 'src/devtools/devtools_panel.ts'),
'panel.css' : path.resolve(__dirname, 'src/devtools/devtools_panel.sass'),
'content.js' : path.resolve(__dirname, 'src/devtools/content.ts')
},
output: {
path : path.resolve(__dirname, 'app', 'devtools'),
filename: '[name]'
},
node: {
__dirname: false
},
resolve: {
extensions: ['.js', '.json', '.ts'],
alias: {
common : path.resolve(__dirname, 'src/common/'),
core : path.resolve(__dirname, 'src/renderer/core/'),
'devtools/components' : path.resolve(__dirname, 'src/devtools/components/'),
'devtools/common' : path.resolve(__dirname, 'src/devtools/common/'),
}
},
module : { rules: [ts,scss,css] },
plugins: [
new ExtractTextPlugin("panel.css"),
]
};
const config_main = {
target: 'electron-main',
entry: path.resolve(__dirname, 'src/main/index.ts'),
output: {
path : path.resolve(__dirname, 'app'),
filename: 'main.js'
},
resolve: {
extensions: ['.js', '.json', '.ts'],
alias: {
main : path.resolve(__dirname, 'src/main/'),
common : path.resolve(__dirname, 'src/common/')
}
},
node: { __dirname: false },
module: { rules: [ts] },
};
const config_renderer = {
target: 'electron-renderer',
entry: {
'renderer.js' : path.resolve(__dirname, 'src/renderer/index.ts'),
},
output: {
path : path.resolve(__dirname, 'app'),
filename: '[name]'
},
resolve: {
extensions: ['.js', '.json', '.ts'],
alias: {
components : path.resolve(__dirname, 'src/renderer/components/'),
core : path.resolve(__dirname, 'src/renderer/core/'),
states : path.resolve(__dirname, 'src/renderer/states/'),
ui : path.resolve(__dirname, 'src/renderer/ui/'),
common : path.resolve(__dirname, 'src/common/'),
}
},
node: { __dirname: false },
module : { rules: [ts] },
};
const config_ui = {
target: 'web',
entry: {
'app.css' : path.resolve(__dirname, 'src/renderer/ui/ui.sass')
},
output: {
path : path.resolve(__dirname, 'app', 'css'),
filename: '[name]'
},
node: { __dirname: false },
module : { rules: [scss,css] },
plugins: [
new ExtractTextPlugin("app.css"),
]
}
module.exports = [
config_main,
config_renderer,
config_ui,
config_devtools
];