/
webpack.config.ts
74 lines (71 loc) · 2.33 KB
/
webpack.config.ts
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
const webpack = require('webpack');
const isCi = process.env.CI && process.env.CI !== '';
module.exports = {
mode: 'development',
devtool: 'cheap-module-source-map',
entry: {
index: './source/main/index.js',
preload: './source/main/preload.js'
},
optimization: {
// https://github.com/webpack/webpack/issues/7470
nodeEnv: false
},
output: {
filename: '[name].js'
},
/**
* Set target to Electron specific node.js env.
* https://github.com/chentsulin/webpack-target-electron-renderer#how-this-module-works
*/
target: 'electron-main',
cache: true,
/**
* Disables webpack processing of __dirname and __filename.
* If you run the bundle in node.js it falls back to these values of node.js.
* https://github.com/webpack/webpack/issues/2010
*/
node: {
__dirname: false,
__filename: false
},
externals: {
'js-chain-libs-node': 'commonjs2 js-chain-libs-node',
'trezor-connect': 'commonjs2 trezor-connect'
},
module: {
rules: [{
test: /\.jsx?$/,
include: /source/,
exclude: /source\/renderer/,
use: (isCi ? [] : ['cache-loader']).concat(['babel-loader'])
}, {
test: /(pdfkit|linebreak|fontkit|unicode|brotli|png-js).*\.js$/,
use: {
loader: 'transform-loader?brfs'
}
}, {
test: /\.(woff2?|eot|ttf|otf|png|jpe?g|gif|svg)(\?.*)?$/,
exclude: /\.inline\.svg$/,
use: {
loader: 'file-loader',
options: {
name: '[name]-[hash].[ext]',
outputPath: 'assets/'
}
}
}]
},
plugins: [new webpack.DefinePlugin(Object.assign({
'process.env.API_VERSION': JSON.stringify(process.env.API_VERSION || 'dev'),
'process.env.NETWORK': JSON.stringify(process.env.NETWORK || 'development'),
'process.env.MOCK_TOKEN_METADATA_SERVER_PORT': process.env.MOCK_TOKEN_METADATA_SERVER_PORT || 0,
'process.env.MOBX_DEV_TOOLS': process.env.MOBX_DEV_TOOLS || 0,
'process.env.BUILD_NUMBER': JSON.stringify(process.env.BUILD_NUMBER || 'dev'),
'process.env.IS_WATCH_MODE': process.env.IS_WATCH_MODE === 'true',
'process.env.KEEP_LOCAL_CLUSTER_RUNNING': process.env.KEEP_LOCAL_CLUSTER_RUNNING === 'true'
}, process.env.NODE_ENV === 'production' ? {
// Only bake in NODE_ENV value for production builds.
'process.env.NODE_ENV': '"production"'
} : {}))].filter(Boolean)
};