Skip to content

Commit c7d9792

Browse files
committed
add sentry error tracking
1 parent 32c1711 commit c7d9792

File tree

5 files changed

+86
-24
lines changed

5 files changed

+86
-24
lines changed

build/webpack.base.config.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,16 @@ module.exports = {
55
devtool: '#source-map',
66
entry: {
77
app: './src/client-entry.js',
8-
vendor: ['vue', 'vue-router', 'vuex', 'firebase', 'lru-cache', 'es6-promise']
8+
vendor: [
9+
'vue',
10+
'vue-router',
11+
'vuex',
12+
'firebase',
13+
'lru-cache',
14+
'es6-promise',
15+
'raven-js',
16+
'raven-js/plugins/vue'
17+
]
918
},
1019
output: {
1120
path: path.resolve(__dirname, '../dist'),

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
"express": "^4.14.0",
1717
"firebase": "^2.4.2",
1818
"lru-cache": "^4.0.1",
19+
"raven": "^0.12.1",
20+
"raven-js": "^3.8.0",
1921
"serialize-javascript": "^1.3.0",
2022
"serve-favicon": "^2.3.0",
2123
"vue": "^2.0.0",

server.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ const favicon = require('serve-favicon')
99
const serialize = require('serialize-javascript')
1010
const compression = require('compression')
1111

12+
const sentryURL = 'https://3e4707b9e6f44859b0114d26ec5539a5:de55022a507e4cbfb9b444fc55c79156@sentry.io/112601'
13+
const raven = require('raven')
14+
const sentry = new raven.Client(sentryURL)
15+
1216
// https://github.com/vuejs/vue/blob/next/packages/vue-server-renderer/README.md#why-use-bundlerenderer
1317
const createBundleRenderer = require('vue-server-renderer').createBundleRenderer
1418

@@ -32,6 +36,8 @@ if (isProd) {
3236
// create server renderer from real fs
3337
const bundlePath = resolve('./dist/server-bundle.js')
3438
renderer = createRenderer(fs.readFileSync(bundlePath, 'utf-8'))
39+
// sentry error tracking
40+
app.use(raven.middleware.express.requestHandler(sentryURL))
3541
} else {
3642
require('./build/setup-dev-server')(app, bundle => {
3743
renderer = createRenderer(bundle)
@@ -47,7 +53,7 @@ function createRenderer (bundle) {
4753
})
4854
}
4955

50-
app.use(compression({threshold: 0}))
56+
app.use(compression({ threshold: 0 }))
5157
app.use('/dist', express.static(resolve('./dist')))
5258
app.use(favicon(resolve('./src/assets/logo.png')))
5359

@@ -87,9 +93,14 @@ app.get('*', (req, res) => {
8793
res.status(500).end('Internal Error 500')
8894
console.error(`error during render : ${req.url}`)
8995
console.error(err)
96+
sentry.captureException(err)
9097
})
9198
})
9299

100+
if (isProd) {
101+
app.use(raven.middleware.express.errorHandler(sentryURL))
102+
}
103+
93104
const port = process.env.PORT || 8080
94105
app.listen(port, () => {
95106
console.log(`server started at localhost:${port}`)

src/client-entry.js

+12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1+
// polyfill Promise
12
require('es6-promise').polyfill()
3+
4+
// setup Sentry for client-side error tracking
5+
import Vue from 'vue'
6+
import Raven from 'raven-js'
7+
import RavenVue from 'raven-js/plugins/vue'
8+
9+
Raven
10+
.config('https://3e4707b9e6f44859b0114d26ec5539a5@sentry.io/112601')
11+
.addPlugin(RavenVue, Vue)
12+
.install()
13+
214
import { app, store } from './app'
315

416
// prime the store with server-initialized state.

yarn.lock

+50-22
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ arrify@^1.0.0:
9797
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
9898

9999
asn1.js@^4.0.0:
100-
version "4.8.1"
101-
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.8.1.tgz#3949b7f5fd1e8bedc13be3abebf477f93490c810"
100+
version "4.9.0"
101+
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a"
102102
dependencies:
103103
bn.js "^4.0.0"
104104
inherits "^2.0.1"
@@ -145,14 +145,14 @@ asynckit@^0.4.0:
145145
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
146146

147147
autoprefixer@^6.3.1, autoprefixer@^6.4.0:
148-
version "6.5.1"
149-
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.1.tgz#ae759a5221e709f3da17c2d656230e67c43cbb75"
148+
version "6.5.2"
149+
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.2.tgz#37cc910c5e1139ad341a006d5f6d441a380b742b"
150150
dependencies:
151151
browserslist "~1.4.0"
152-
caniuse-db "^1.0.30000554"
152+
caniuse-db "^1.0.30000576"
153153
normalize-range "^0.1.2"
154154
num2fraction "^1.2.2"
155-
postcss "^5.2.4"
155+
postcss "^5.2.5"
156156
postcss-value-parser "^3.2.3"
157157

158158
aws-sign2@~0.6.0:
@@ -874,9 +874,9 @@ camelcase@^3.0.0:
874874
version "3.0.0"
875875
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
876876

877-
caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000554:
878-
version "1.0.30000574"
879-
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000574.tgz#4b10fb5435c50262effd10653405befd0d0bfc2c"
877+
caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000576:
878+
version "1.0.30000578"
879+
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000578.tgz#fc4106bda3ca19df4bd9f35e491063f3d498ff31"
880880

881881
caseless@~0.11.0:
882882
version "0.11.0"
@@ -1076,6 +1076,10 @@ cookie-signature@1.0.6:
10761076
version "1.0.6"
10771077
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
10781078

1079+
cookie@0.1.0:
1080+
version "0.1.0"
1081+
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.0.tgz#90eb469ddce905c866de687efc43131d8801f9d0"
1082+
10791083
cookie@0.3.1:
10801084
version "0.3.1"
10811085
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
@@ -1998,7 +2002,7 @@ json-stable-stringify@^1.0.1:
19982002
dependencies:
19992003
jsonify "~0.0.0"
20002004

2001-
json-stringify-safe@~5.0.1:
2005+
json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
20022006
version "5.0.1"
20032007
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
20042008

@@ -2184,6 +2188,10 @@ lru-cache@^4.0.1:
21842188
pseudomap "^1.0.1"
21852189
yallist "^2.0.0"
21862190

2191+
lsmod@1.0.0:
2192+
version "1.0.0"
2193+
resolved "https://registry.yarnpkg.com/lsmod/-/lsmod-1.0.0.tgz#9a00f76dca36eb23fa05350afe1b585d4299e64b"
2194+
21872195
macaddress@^0.2.8:
21882196
version "0.2.8"
21892197
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
@@ -2334,7 +2342,7 @@ node-pre-gyp@^0.6.29:
23342342
tar "~2.2.1"
23352343
tar-pack "~3.3.0"
23362344

2337-
node-uuid@~1.4.7:
2345+
node-uuid@~1.4.1, node-uuid@~1.4.7:
23382346
version "1.4.7"
23392347
resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f"
23402348

@@ -2751,7 +2759,7 @@ postcss-zindex@^2.0.1:
27512759
postcss "^5.0.4"
27522760
uniqs "^2.0.0"
27532761

2754-
postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.4:
2762+
postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.5:
27552763
version "5.2.5"
27562764
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.5.tgz#ec428c27dffc7fac65961340a9b022fa4af5f056"
27572765
dependencies:
@@ -2859,6 +2867,22 @@ range-parser@^1.0.3, range-parser@~1.2.0:
28592867
version "1.2.0"
28602868
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
28612869

2870+
raven-js@^3.8.0:
2871+
version "3.8.0"
2872+
resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.8.0.tgz#ffdfe41061be929e80ddc7cebbd9617fdf79a6a1"
2873+
dependencies:
2874+
json-stringify-safe "^5.0.1"
2875+
2876+
raven@^0.12.1:
2877+
version "0.12.1"
2878+
resolved "https://registry.yarnpkg.com/raven/-/raven-0.12.1.tgz#dad6b485e85bfac8f9af5fbb4c7a0d7c8350fbc7"
2879+
dependencies:
2880+
cookie "0.1.0"
2881+
json-stringify-safe "^5.0.1"
2882+
lsmod "1.0.0"
2883+
node-uuid "~1.4.1"
2884+
stack-trace "0.0.7"
2885+
28622886
rc@~1.1.6:
28632887
version "1.1.6"
28642888
resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9"
@@ -3169,6 +3193,10 @@ sshpk@^1.7.0:
31693193
jsbn "~0.1.0"
31703194
tweetnacl "~0.14.0"
31713195

3196+
stack-trace@0.0.7:
3197+
version "0.0.7"
3198+
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.7.tgz#c72e089744fc3659f508cdce3621af5634ec0fff"
3199+
31723200
"statuses@>= 1.3.0 < 2", statuses@~1.3.0:
31733201
version "1.3.0"
31743202
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a"
@@ -3411,8 +3439,8 @@ vue-hot-reload-api@^2.0.1:
34113439
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.0.6.tgz#817d4bfb30f55428aa1012d029499e07f3147d21"
34123440

34133441
vue-loader@^9.7.0:
3414-
version "9.7.0"
3415-
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-9.7.0.tgz#9a7573c96fe17ca312c18e2ee1aff54e4d6a71f3"
3442+
version "9.8.1"
3443+
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-9.8.1.tgz#40dde1cb7fdb2d8e4718df6acfa7f679bf30fcb9"
34163444
dependencies:
34173445
consolidate "^0.14.0"
34183446
hash-sum "^1.0.2"
@@ -3425,16 +3453,16 @@ vue-loader@^9.7.0:
34253453
source-map "^0.5.6"
34263454
vue-hot-reload-api "^2.0.1"
34273455
vue-style-loader "^1.0.0"
3428-
vue-template-compiler "^2.0.0-rc.3"
3456+
vue-template-compiler "^2.0.4"
34293457
vue-template-es2015-compiler "^1.0.0"
34303458

34313459
vue-router@^2.0.0:
34323460
version "2.0.1"
34333461
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.0.1.tgz#88b83cdc9497bad5b20b579e847a7e7240e221dd"
34343462

34353463
vue-server-renderer@^2.0.0:
3436-
version "2.0.4"
3437-
resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.0.4.tgz#bf90c70b5fcb1cf8ade24be700c211fff3143a67"
3464+
version "2.0.5"
3465+
resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.0.5.tgz#c5637b5fc2ab5c0c1e7f30cdf64949663248f430"
34383466
dependencies:
34393467
de-indent "^1.0.2"
34403468
he "^1.1.0"
@@ -3445,9 +3473,9 @@ vue-style-loader@^1.0.0:
34453473
dependencies:
34463474
loader-utils "^0.2.7"
34473475

3448-
vue-template-compiler@^2.0.0-rc.3:
3449-
version "2.0.4"
3450-
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.0.4.tgz#89d144c07ffcf6a67607dcdde37a21d535280d04"
3476+
vue-template-compiler@^2.0.4:
3477+
version "2.0.5"
3478+
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.0.5.tgz#6a8c454e7d4ed03cc295ae9733a432e31df25ea3"
34513479
dependencies:
34523480
de-indent "^1.0.2"
34533481
he "^1.1.0"
@@ -3457,8 +3485,8 @@ vue-template-es2015-compiler@^1.0.0:
34573485
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.1.1.tgz#ae1ddcf9f6c7eb95df304560ba9a803f3ec9ffb4"
34583486

34593487
vue@^2.0.0:
3460-
version "2.0.4"
3461-
resolved "https://registry.yarnpkg.com/vue/-/vue-2.0.4.tgz#26f1e3c52c74012de6a6aa58595c6706395f1fb2"
3488+
version "2.0.5"
3489+
resolved "https://registry.yarnpkg.com/vue/-/vue-2.0.5.tgz#b99dc7180a802d1148a508db3d84b52c09b5ca8e"
34623490

34633491
vuex-router-sync@^3.0.0:
34643492
version "3.0.0"

0 commit comments

Comments
 (0)