aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-07-12 09:52:22 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-07-13 06:54:45 +0800
commitf4b2a9625dd46080a4fd05754c525f73e5fff8b1 (patch)
treed8658191567c6ad4273c666c2c80df0afdde42e7
parent9b387b8ec3c543b5c96d1887550797a2bb90fe94 (diff)
downloaddexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.tar
dexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.tar.gz
dexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.tar.bz2
dexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.tar.lz
dexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.tar.xz
dexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.tar.zst
dexon-sol-tools-f4b2a9625dd46080a4fd05754c525f73e5fff8b1.zip
Only upload sourcemaps to rollbar on live deploys, and log NaN error for future debugging
-rw-r--r--packages/website/package.json2
-rw-r--r--packages/website/ts/utils/utils.ts4
-rw-r--r--packages/website/webpack.config.js68
3 files changed, 43 insertions, 31 deletions
diff --git a/packages/website/package.json b/packages/website/package.json
index b5b4b6119..a8a761fea 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -16,7 +16,7 @@
"deploy_staging":
"npm run build; aws s3 sync ./public/. s3://staging-0xproject --profile 0xproject --region us-east-1 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers",
"deploy_live":
- "npm run build; aws s3 sync ./public/. s3://0xproject.com --profile 0xproject --region us-east-1 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --exclude *.map.js"
+ "DEPLOY_ROLLBAR_SOURCEMAPS=true npm run build; aws s3 sync ./public/. s3://0xproject.com --profile 0xproject --region us-east-1 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --exclude *.map.js"
},
"author": "Fabio Berger",
"license": "Apache-2.0",
diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts
index 9ca7f607b..e515cdeb3 100644
--- a/packages/website/ts/utils/utils.ts
+++ b/packages/website/ts/utils/utils.ts
@@ -29,6 +29,7 @@ import {
import { configs } from 'ts/utils/configs';
import { constants } from 'ts/utils/constants';
import * as u2f from 'ts/vendor/u2f_api';
+import { errorReporter } from './error_reporter';
const isDogfood = (): boolean => _.includes(window.location.href, configs.DOMAIN_DOGFOOD);
@@ -389,6 +390,9 @@ export const utils = {
: 2;
const format = `0,0.${_.repeat('0', precision)}`;
const formattedAmount = numeral(unitAmount).format(format);
+ if (_.isNaN(formattedAmount)) {
+ throw new Error(`amount ${BigNumber}, decimals ${decimals} could not be formatted and returned NaN.`);
+ }
return formattedAmount;
},
getUsdValueFormattedAmount(amount: BigNumber, decimals: number, price: BigNumber): string {
diff --git a/packages/website/webpack.config.js b/packages/website/webpack.config.js
index 5647b4f93..8653196a6 100644
--- a/packages/website/webpack.config.js
+++ b/packages/website/webpack.config.js
@@ -9,6 +9,43 @@ const GIT_SHA = childProcess
.toString()
.trim();
+const generatePlugins = () => {
+ let plugins = [];
+ if (process.env.NODE_ENV === 'production') {
+ plugins = plugins.concat([
+ // Since we do not use moment's locale feature, we exclude them from the bundle.
+ // This reduces the bundle size by 0.4MB.
+ new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
+ new webpack.DefinePlugin({
+ 'process.env': {
+ NODE_ENV: JSON.stringify(process.env.NODE_ENV),
+ GIT_SHA: JSON.stringify(GIT_SHA),
+ },
+ }),
+ // TODO: Revert to webpack bundled version with webpack v4.
+ // The v3 series bundled version does not support ES6 and
+ // fails to build.
+ new UglifyJsPlugin({
+ sourceMap: true,
+ uglifyOptions: {
+ mangle: {
+ reserved: ['BigNumber'],
+ },
+ },
+ }),
+ ]);
+ if (process.env.DEPLOY_ROLLBAR_SOURCEMAPS === 'true') {
+ plugins = plugins.concat([
+ new RollbarSourceMapPlugin({
+ accessToken: '32c39bfa4bb6440faedc1612a9c13d28',
+ version: GIT_SHA,
+ publicPath: 'https://0xproject.com/',
+ }),
+ ]);
+ }
+ }
+ return plugins;
+};
module.exports = {
entry: ['./ts/index.tsx'],
output: {
@@ -78,34 +115,5 @@ module.exports = {
},
disableHostCheck: true,
},
- plugins:
- process.env.NODE_ENV === 'production'
- ? [
- // Since we do not use moment's locale feature, we exclude them from the bundle.
- // This reduces the bundle size by 0.4MB.
- new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
- new webpack.DefinePlugin({
- 'process.env': {
- NODE_ENV: JSON.stringify(process.env.NODE_ENV),
- GIT_SHA: JSON.stringify(GIT_SHA),
- },
- }),
- // TODO: Revert to webpack bundled version with webpack v4.
- // The v3 series bundled version does not support ES6 and
- // fails to build.
- new UglifyJsPlugin({
- sourceMap: true,
- uglifyOptions: {
- mangle: {
- reserved: ['BigNumber'],
- },
- },
- }),
- new RollbarSourceMapPlugin({
- accessToken: '32c39bfa4bb6440faedc1612a9c13d28',
- version: GIT_SHA,
- publicPath: 'https://0xproject.com/',
- }),
- ]
- : [],
+ plugins: generatePlugins(),
};