Skip to content

Commit 39ad3cb

Browse files
committed
Fix dotenv
1 parent 547ea5e commit 39ad3cb

File tree

8 files changed

+48
-10
lines changed

8 files changed

+48
-10
lines changed

.env.example

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
SENTRY_DSN='https://XXXX.ingest.sentry.io/00000000'
22
GA_UACODE=UA-XXXXXXXXX-X
3-
# DEBUG=universal-analytics
3+
# DEBUG=universal-analytics # do not use DEBUG, because `debug` package will override this var.
4+
# But dotenv-webpack plugin will replace it by string and parse by Terser will fail.
45
# NODE_DEBUG=request # debug requests in analytics
6+
# DEBUG_PROD=true

.erb/configs/webpack.config.main.prod.babel.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,23 @@ import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
1010
import baseConfig from './webpack.config.base';
1111
import CheckNodeEnv from '../scripts/CheckNodeEnv';
1212
import DeleteSourceMaps from '../scripts/DeleteSourceMaps';
13+
import Dotenv from 'dotenv-webpack';
1314

1415
CheckNodeEnv('production');
1516
DeleteSourceMaps();
1617

17-
const devtoolsConfig = process.env.DEBUG_PROD === 'true' ? {
18-
devtool: 'source-map'
19-
} : {};
18+
const devtoolsConfig =
19+
process.env.DEBUG_PROD === 'true'
20+
? {
21+
devtool: 'source-map',
22+
}
23+
: {};
2024

2125
export default merge(baseConfig, {
2226
...devtoolsConfig,
2327

2428
mode: 'production',
29+
// devtool: 'source-map',
2530

2631
target: 'electron-main',
2732

@@ -37,7 +42,7 @@ export default merge(baseConfig, {
3742
new TerserPlugin({
3843
parallel: true,
3944
}),
40-
]
45+
],
4146
},
4247

4348
plugins: [
@@ -61,6 +66,11 @@ export default merge(baseConfig, {
6166
DEBUG_PROD: false,
6267
START_MINIMIZED: false,
6368
}),
69+
70+
new Dotenv({
71+
path: path.join(__dirname, '../../.env'),
72+
systemvars: true,
73+
}),
6474
],
6575

6676
/**

.erb/configs/webpack.config.renderer.dev.babel.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import webpack from 'webpack';
44
import chalk from 'chalk';
55
import { merge } from 'webpack-merge';
66
import { spawn, execSync } from 'child_process';
7+
import Dotenv from 'dotenv-webpack';
78
import baseConfig from './webpack.config.base';
89
import CheckNodeEnv from '../scripts/CheckNodeEnv';
910
import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';
@@ -257,6 +258,11 @@ export default merge(baseConfig, {
257258
NODE_ENV: 'development',
258259
}),
259260

261+
new Dotenv({
262+
path: path.join(__dirname, '../../.env'),
263+
systemvars: true,
264+
}),
265+
260266
new webpack.LoaderOptionsPlugin({
261267
debug: true,
262268
}),

.erb/configs/webpack.config.renderer.dev.dll.babel.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import webpack from 'webpack';
66
import path from 'path';
77
import { merge } from 'webpack-merge';
8+
import Dotenv from 'dotenv-webpack';
89
import baseConfig from './webpack.config.base';
910
import { dependencies } from '../../package.json';
1011
import CheckNodeEnv from '../scripts/CheckNodeEnv';
@@ -59,6 +60,11 @@ export default merge(baseConfig, {
5960
NODE_ENV: 'development',
6061
}),
6162

63+
new Dotenv({
64+
path: path.join(__dirname, '../../.env'),
65+
systemvars: true,
66+
}),
67+
6268
new webpack.LoaderOptionsPlugin({
6369
debug: true,
6470
options: {

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,6 @@
205205
"caniuse-lite": "1.0.30001214",
206206
"clsx": "^1.1.1",
207207
"date-fns": "2.20.1",
208-
"dotenv": "10.0.0",
209208
"electron-debug": "^3.1.0",
210209
"electron-log": "^4.2.4",
211210
"electron-updater": "^4.3.4",

src/components/SettingsModal/SettingsModal.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { useCallback, useState } from 'react';
22
import {
3+
Button,
34
Checkbox,
45
Divider,
56
Form,
@@ -11,6 +12,7 @@ import {
1112
import { CheckboxChangeEvent } from 'antd/lib/checkbox';
1213
import { SaveOutlined } from '@ant-design/icons';
1314
import { observer } from 'mobx-react';
15+
import * as Sentry from '@sentry/browser';
1416
// eslint-disable-next-line import/named
1517
import moment, { Moment } from 'moment';
1618

@@ -117,6 +119,17 @@ const SettingsModal: React.VFC<ISettingsModalProps> = observer(
117119
onChange={handleChangeNotifications}
118120
/>
119121
</Form.Item>
122+
{process.env.DEBUG_PROD === 'true' && (
123+
<Button
124+
onClick={() => {
125+
const message = `${process.env.NODE_ENV} exception ${Date.now()}`;
126+
Sentry.captureException(new Error(message));
127+
console.log('Sentry.captureException', message);
128+
}}
129+
>
130+
Test Sentry
131+
</Button>
132+
)}
120133
</Modal>
121134
);
122135
}

src/main.dev.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,18 @@
88
* When running `yarn build` or `yarn build:main`, this file is compiled to
99
* `./src/main.prod.js` using webpack. This gives us some performance wins.
1010
*/
11+
import log from 'electron-log';
12+
Object.assign(console, log.functions);
1113
import 'core-js/stable';
1214
import 'regenerator-runtime/runtime';
13-
import dotenv from 'dotenv';
1415
import path from 'path';
1516
import { app, BrowserWindow, shell } from 'electron';
1617
import { autoUpdater } from 'electron-updater';
17-
import log from 'electron-log';
1818
import Badge from 'electron-windows-badge';
1919

2020
import MenuBuilder from './menu';
2121
import { initSentry } from './shared/initSentry';
2222

23-
dotenv.config();
24-
2523
initSentry();
2624

2725
console.log('Working path:', app.getAppPath());

src/shared/initSentry.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import log from 'electron-log';
2+
Object.assign(console, log.functions);
3+
14
const Sentry =
25
process.type === 'browser'
36
? require('@sentry/electron/dist/main')
@@ -8,5 +11,6 @@ export function initSentry() {
811
Sentry.init({
912
dsn: process.env.SENTRY_DSN,
1013
});
14+
console.log(`[process.type=${process.type}] Sentry.init succeeded`);
1115
}
1216
}

0 commit comments

Comments
 (0)