forked from geri-m/minimal-consent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.prod.js
57 lines (56 loc) · 2.21 KB
/
webpack.prod.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
const CopyWebpackPlugin = require('copy-webpack-plugin');
const merge = require('webpack-merge');
const parentWebPack = require('./webpack.common.js');
const TerserPlugin = require('terser-webpack-plugin');
const StringReplacePlugin = require('string-replace-webpack-plugin')
module.exports = merge(parentWebPack, {
mode: 'production',
plugins: [
new CopyWebpackPlugin([
{from: './src/manifest.prod.json', to: './manifest.json'},
{from: './src/images/', to: './images/'},
{from: './src/js/popup/popup.html', to: './popup/'},
{from: './src/js/options/options.html', to: './options/'},
{from: './src/_locales/', to: './_locales/'}]),
// an instance of the plugin must be present
new StringReplacePlugin()
],
optimization: {
minimizer: [
new TerserPlugin({
sourceMap: false, // We don't use Source Maps in Production
terserOptions: {
compress: {
drop_console: true, // Remove console.log if somewhere present in other libs or not removed by misstake.
},
},
}),
],
},
module: {
rules: [
{
test: /\.ts$/,
use: [{
loader: StringReplacePlugin.replace({
replacements: [{
pattern: /Logger.log(.+)/g,
replacement: function (_match, _p1, _offset, _string) {
console.log("Logger Replace happend");
return "";
}
},
{
// this is for the OnPage Logger and a bit hacky ...
pattern: /this._log.log(.+)/g,
replacement: function (_match, _p1, _offset, _string) {
console.log("OnpageLog Replace happend");
return "";
}
}]
})
}]
}
]
}
});