μ΄κ²μ karma jasmine uint ν μ€νΈλ₯Ό μ€ννκΈ° μν karma.conf.jsμ νμΌ μμμ λλ€.
νμΌ: ['app/bower_components/jquery/dist/jquery.min.js',
'μ±/bower_components/angular/angular.min.js',
'μ±/bower_components/raven-js/dist/raven.js',
'μ±/bower_components/raven-js/plugins/angular.js'
]
μ΄λ²€νΈμ 'app/bower_components/raven-js/plugins/angular.js'λ₯Ό ν¬ν¨νμ§λ§ 'ngRaven' λͺ¨λμ μ¬μ©ν μ μλ€λ μ€λ₯κ° λ°μν©λλ€.
+1
μ¬κΈ°μ μ°λ¦¬κ° ν μ μλ νλμ΄ μμ΅λκΉ? μ‘°κΈ νΌλμ€λ½μ΅λλ€. :)
μ€, jk, λλ Stackoverflowλ₯Ό μ½μμ΅λλ€. angular-raven ν¨ν€μ§μμλ μλνμ§λ§ μ°λ¦¬ ν¨ν€μ§μμλ μλνμ§ μμ΅λλ€.
νμ¬ λ¬Έμμ λ°λ₯΄λ©΄ μ΄μ Sentry Angular νλ¬κ·ΈμΈμ΄ μλν©λλ€.
https://docs.getsentry.com/hosted/clients/javascript/integrations/angular/
'app/bower_components/raven-js/plugins/angular.js'μμ λλ ν 리 'dist'κ° λλ½λμμ μ μμ΅λκΉ?
λ¬Έμ [https://docs.getsentry.com/hosted/clients/javascript/integrations/angular/#bower]μ λ°λ₯΄λ©΄ λ€μκ³Ό κ°μμΌ ν©λλ€.
<script src="/bower_components/raven-js/dist/plugins/angular.js"></script>
λ¬Έμ Angularλ₯Ό λ°λΌκ°λ©΄ λλ₯Ό μν λͺ¨λμ μ°Ύμ μ μμ΅λλ€. μ€ν μ€λ²νλ‘ μ루μ μ μ μκ² ν¨κ³Όμ μ λλ€.
'app/bower_components/raven-js/plugins/angular.js'μμ λλ ν 리 'dist'κ° λλ½λμμ μ μμ΅λκΉ?
κ·Έκ²μ νμ€ν ν κ²μ λλ€.
μ¬κΈ° λκ΅°κ°κ° λμκ² κ΅¬μ²΄μ μΈ μλ₯Ό μ 곡ν μ μλ€λ©΄ κΈ°κΊΌμ΄ μ΄μ ββλν΄ μ‘°μ¬νκ² μ΅λλ€.
@benvinegar https://plnkr.co/edit/S1Dk9t?p=preview μ΄κ²μ μ€λ₯μ κ°λ¨ν μνμ λλ€.
https://github.com/getsentry/raven-js/blob/master/docs/integrations/angular.rst κΈ°λ°
κ·Έκ²μ λ§νλ€:
_μ΄ CDN λΉλλ Angular νλ¬κ·ΈμΈμ μλμΌλ‘ μ΄κΈ°νν©λλ€._
κ·Έλ¬λ λ¬Έμμμ μ€λ₯κ° λ°μνλ κ²μ²λΌ κ°μ Έμ€κΈ°λ§ νλ©΄ plnkrμμ λ‘κ·Έλ₯Ό νμΈνμμμ€.
[$ injection:nomod ] 'ngRaven' λͺ¨λμ μ¬μ©ν μ μμ΅λλ€! λͺ¨λ μ΄λ¦μ μλͺ» μ
λ ₯νκ±°λ λ‘λνλ κ²μ μμμ΅λλ€. λͺ¨λμ λ±λ‘νλ κ²½μ° μ’
μμ±μ λ λ²μ§Έ μΈμλ‘ μ§μ ν΄μΌ ν©λλ€.
μλ§λ μ΄κ²μ λ¬Έμμ μ€ν΄ μΌλΏμ λκΉ?
μ΄κ²μ λν μμμ΄ μμ΅λκΉ? λλ μ΄ν κ° νλ¬κ·ΈμΈ λ§, CommonJs μλ μκ° μ΄κ° λ°λ‘ νμΌμ ν¬ν¨ ν λ μ€μ λ‘ νΈμΆλμ§ μμ΅λλ€. νλ¬κ·ΈμΈμ μ¬μ©ν μ μλλ‘ μμ νμμμ€.
λ€μμ μλνμ§ μλ ν΅ν© νμ΄μ§ λ€μμ κ°μ₯ κ°λ¨ν μμ λλ€. https://plnkr.co/edit/M5nt6Y?p=preview
@RobertBaron @mebibou β λ μμ λͺ¨λ μ±μ μ΄κΈ°ννκΈ° μ μ Ravenμ ꡬμ±ν΄μΌ ν©λλ€. νλ¬κ·ΈμΈμ Raven.install()
κ° νΈμΆλ λκΉμ§ μ΄κΈ°νλμ§ μμ΅λλ€.
μ΄κ²μ λͺ¨λ λ¬Έμ μμ μ
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://cdn.ravenjs.com/3.6.1/angular/raven.min.js"></script>
<script>Raven.config('https://<key>@app.getsentry.com/<project>').install();</script>
μ ν리μΌμ΄μ
μ€ν¬λ¦½νΈ(μ: app.js
)κ° λμ€μ μμΌ νλ€λ κ²μ΄ λ λͺ
νν΄μ§ μ μμ§λ§.
μ€, μ΄κ²μ μ€μ λ‘ ngRaven
κ° νμν λͺ¨λμμ μ΄λ¬ν μ’
λ₯μ ꡬμ±μ μννλ Angular λ°©μμ μλ°°λμ§λ§ μ΄λ κ² νλ©΄ λΆκ°λ₯ν©λλ€.
μ ν λͺ μλμ΄ μμ§ μκΈ° λλ¬Έμ λ¬Έμμ λͺ μν΄μΌ νλ€κ³ μκ°ν©λλ€.
+1
#413, @benvinegarλ₯Ό μ°Έμ‘°νμΈμ.
@Sija β μ¬λλ€μ΄ μ΄κ²μ κ³μ κ±Έλ € λμ΄μ§λ€λ μ μ κ°μν λ λ³ν©νλ κ²μ΄ μ’μ΅λλ€. λκ΅°κ° Ravenμ Angular _before_ Angularλ‘ μ μΈνμ μλ μλ κ²½μ°κ° κ±±μ λμ§λ§. κ·Έλ¬λ μ΅μν CDN μ¬μ©μλ μλμΌλ‘ μ κ·Έλ μ΄λν΄μΌ ν©λλ€.
μλ κ΅΅κ² νμλ λΉνΈλ₯Ό μΆκ°νλ κ²μ μμ§ λ§μμμ€.
κ°κ°λ§κ·
.config('https://
.addPlugin(Raven.Plugins.Angular)
.μ€μΉ();
@theatrain μΈμ
λ€μμ gulp-injectλ₯Ό μ¬μ©ν μ΄νμ μμ μ¬νμ
λλ€.
"overrides": {
"raven-js" : {
"main": [
"dist/raven.js",
"dist/plugins/angular.js"
]
}
},
λͺ¨λ κ²μ΄ λ―Ένλκ³ μΆμλμκΈ° λλ¬Έμ gruntμ λν μ’μ ν΄κ²° λ°©λ²λ μ°Ύμμ΅λλ€.
λ΄ app.js
λ λ€μκ³Ό κ°μ΅λλ€.
'use strict';
angular
.module('sraApp', [
'ngRaven'
]);
raven.js
λΌλ λ€λ₯Έ νμΌμ λ§λ€μμ΅λλ€.
// redacted sensitive info
Raven
.config('https://<code>@sentry.io/<myapp>')
.addPlugin(Raven.Plugins.Angular)
.install();
κ·Έλ¦¬κ³ μΈλΌμΈ μ€ν¬λ¦½νΈ λμ index.htmlμμ:
<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/raven-js/dist/raven.js"></script>
<!-- endbower -->
<!-- Outside of auto-managed bower, but still inside compile -> vender.js -->
<script src="bower_components/raven-js/dist/plugins/angular.js"></script>
<!-- endbuild -->
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/raven.js"></script>
<script src="scripts/app.js"></script>
<!-- endbuild -->
μ΄μ λ΄κ° grunt build:dist
νλ©΄ κ·Έλ°νΈλ₯Ό λ―Έν/μ΅μννμ¬ νλ¬κ·ΈμΈμ λ±λ‘ν μ μλλ‘ μ€ν¬λ¦½νΈλ₯Ό μ΅μ νν©λλ€. μΈλΌμΈ μ€ν¬λ¦½νΈλ₯Ό μννλ©΄ μ΅μ νκ° λ°μνμ§ μμΌλ―λ‘ window.angularλ νλ¬κ·ΈμΈμ΄ μλμΌλ‘ λ‘λλλ λ° μ ν©νμ§ μμ΅λλ€.
μ λ°μ μΈ νλ¦μ λ€μκ³Ό κ°μ΅λλ€(λ¬Έμκ° μ νν¨).
angular
λ€μ¬μ€λ€raven
κ°μ Έμ€κΈ°raven/plugins/angular.js
κ°μ Έμ€κΈ°ngRaven
νμ§λ§ uglification/minificationμ κ³ λ €νμ¬ μ λλ‘ μνλμμ΅λλ€.λν λλΆλΆμ ꡬμ±μ΄ λμ€μ λ°μν μ μλ€λ μ μ μ μν΄μΌ ν©λλ€(λΆνΈμ€νΈλ© μ€μ λ¬Έμ μ λν νκ·Έλ₯Ό λμΉλλΌλ).
μλ₯Ό λ€μ΄ heroku ꡬμ±μ μ¬μ€ νμ λ‘λλ©λλ€.
'use strict';
angular.module('sraApp')
.run(function (Raven, HEROKU_APP_ID, HEROKU_APP_NAME, HEROKU_RELEASE_CREATED_AT, HEROKU_RELEASE_VERSION, HEROKU_SLUG_COMMIT, HEROKU_SLUG_DESCRIPTION, NODE_ENV) {
Raven.setRelease(HEROKU_RELEASE_VERSION);
Raven.setEnvironment(NODE_ENV);
Raven.setTagsContext({
release_date: HEROKU_RELEASE_CREATED_AT,
git_commit: HEROKU_SLUG_COMMIT,
slug_description: HEROKU_SLUG_DESCRIPTION,
application: {
name: HEROKU_APP_NAME,
id: HEROKU_APP_ID,
}
});
});
μ΄μ λν μ λ°μ΄νΈκ° μμ΅λκΉ? μΉ΄λ₯΄λ§ ν μ€νΈ μ€μνΈμλ λ¬Έμ κ° μμ΅λλ€.
@xeroxoid μΉ΄λ₯΄λ§ ν μ€νΈ μ€μ μ΄κ²μ λ¬Έμ κ° μμκ³ ν΄κ²°ν μ μμμ΅λλ€.
μ°λ¦¬μ κ²½μ° μ°λ¦¬λ ν
μ€νΈ νκ²½μμ Raven.config().addPlugin().install()
루ν΄μ μΌνΈλ¦¬λ‘ 보λ΄λ κ²μ μνμ§ μμκΈ° λλ¬Έμ 건λλ°μμ΅λλ€.
λ¬Έμ λ raven-jsκ° λͺ¨λμ μ¬μ©νμ¬ "κ°λ λ°©μ"μΌλ‘ μμ
μ μννμ§ μκ³ λμ DSNμΌλ‘ Raven.config()
λ₯Ό νΈμΆν κ²½μ°μλ§ ngRaven
λͺ¨λμ λ±λ‘νλ€λ κ²μ
λλ€.
addPlugin()
λ©μλλ ꡬμ±μ΄ μ¬λ°λ₯΄κ² μ€μ λ κ²½μ°μλ§ angular λͺ¨λμ λ±λ‘ν©λλ€(μ: μ μλ DSN url μ¬μ©).
μ΄λ₯Ό μμ νκΈ° μν΄ ν
μ€νΈ μ€μνΈμμλ Raven.config().addPlugin().install()
κ° νμ μ€νλλλ‘ λ§λ€μμ΅λλ€. μΌλ° DSN urlμ μ¬μ©ν λ€μ config.shouldSendCallback
λ©μλλ₯Ό μ¬μ©νμ¬ ν
μ€νΈ νκ²½μμ sentryλ‘ λ³΄λ΄λ κ²μ μ°¨λ¨ν©λλ€. .
μ΄λ₯Ό ν΅ν΄ raven-jsλ angular λͺ¨λμ μ¬λ°λ₯΄κ² λ±λ‘ν μ μμ΅λλ€.
λμμ΄ λκΈ°λ₯Ό λ°λλλ€!
μ°λ¦¬λ λκ°μ΄ νκ³ μμ§λ§ λμ κ°μ§ DSNμ μ λ¬ν©λλ€(μ΄κ²μ μ°λ¦¬μ κ°λ° νκ²½μ μν κ²μ
λλ€). https://[email protected]/1
μ κ°μ κ²μ μ μλν©λλ€(ravenμ URL μμ±μ λν΄ μ΄λ μ λ μννλ κ²μΌλ‘ 보μ΄λ―λ‘ μ¬μ©μ μ΄λ¦μ΄ κ²½λ‘μ ν¨κ» μμ΄μΌ ν¨).
μ₯κΈ°κ° νλνμ§ μμ λ¬Έμ λ«μ΅λλ€. μ΄ μ€λ λμλ λ§μΌμ κ²½μ°λ₯Ό λλΉνμ¬ λͺ κ°μ§ ν΄κ²° λ°©λ²μ΄ ν¬ν¨λμ΄ μμ΅λλ€. μ΄λ€ μμΌλ‘λ μ¬μ ν κ΄λ ¨μ±μ΄ μλ κ²½μ° μ΄ λ¬Έμ λ₯Ό μμ λ‘κ² λ€μ μ¬μμμ€.
κ°μ₯ μ μ©ν λκΈ
μ€, μ΄κ²μ μ€μ λ‘
ngRaven
κ° νμν λͺ¨λμμ μ΄λ¬ν μ’ λ₯μ ꡬμ±μ μννλ Angular λ°©μμ μλ°°λμ§λ§ μ΄λ κ² νλ©΄ λΆκ°λ₯ν©λλ€.μ ν λͺ μλμ΄ μμ§ μκΈ° λλ¬Έμ λ¬Έμμ λͺ μν΄μΌ νλ€κ³ μκ°ν©λλ€.