forked from desktop/desktop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.development.ts
More file actions
85 lines (74 loc) · 2.14 KB
/
webpack.development.ts
File metadata and controls
85 lines (74 loc) · 2.14 KB
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
import * as common from './webpack.common'
import * as webpack from 'webpack'
import merge from 'webpack-merge'
const config: webpack.Configuration = {
mode: 'development',
devtool: 'source-map',
}
const mainConfig = merge({}, common.main, config)
const cliConfig = merge({}, common.cli, config)
const highlighterConfig = merge({}, common.highlighter, config)
const getRendererEntryPoint = () => {
const entry = common.renderer.entry as webpack.Entry
if (entry == null) {
throw new Error(
`Unable to resolve entry point. Check webpack.common.ts and try again`
)
}
return entry.renderer as string
}
const getPortOrDefault = () => {
const port = process.env.PORT
if (port != null) {
const result = parseInt(port)
if (isNaN(result)) {
throw new Error(`Unable to parse '${port}' into valid number`)
}
return result
}
return 3000
}
const port = getPortOrDefault()
const webpackHotModuleReloadUrl = `webpack-hot-middleware/client?path=http://localhost:${port}/__webpack_hmr`
const publicPath = `http://localhost:${port}/build/`
const rendererConfig = merge({}, common.renderer, config, {
entry: {
renderer: [webpackHotModuleReloadUrl, getRendererEntryPoint()],
},
output: {
publicPath,
},
module: {
rules: [
// This will cause the compiled CSS (and sourceMap) to be
// embedded within the compiled javascript bundle and added
// as a blob:// uri at runtime.
{
test: /\.(scss|css)$/,
use: ['style-loader', 'css-loader?sourceMap', 'sass-loader?sourceMap'],
},
],
},
plugins: [new webpack.HotModuleReplacementPlugin()],
})
const crashConfig = merge({}, common.crash, config, {
module: {
rules: [
// This will cause the compiled CSS (and sourceMap) to be
// embedded within the compiled javascript bundle and added
// as a blob:// uri at runtime.
{
test: /\.(scss|css)$/,
use: ['style-loader', 'css-loader?sourceMap', 'sass-loader?sourceMap'],
},
],
},
})
// eslint-disable-next-line no-restricted-syntax
export default [
mainConfig,
rendererConfig,
crashConfig,
cliConfig,
highlighterConfig,
]