成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速使用 Docker 上手 Sentry-CLI - 玩轉(zhuǎn) Source Maps 使用 (Create-React-App)

開發(fā) 前端
使用 sentry-cli 上傳 source maps 時,您需要設(shè)置構(gòu)建系統(tǒng)以創(chuàng)建版本(release)并上傳與該版本對應(yīng)的各種源文件。

[[420986]]

本文轉(zhuǎn)載自微信公眾號「黑客下午茶」,作者為少 。轉(zhuǎn)載本文請聯(lián)系黑客下午茶公眾號。

系列

快速使用 Docker 上手 Sentry-CLI - 創(chuàng)建版本

入門

使用 sentry-cli 上傳 source maps 時,您需要設(shè)置構(gòu)建系統(tǒng)以創(chuàng)建版本(release)并上傳與該版本對應(yīng)的各種源文件。要讓 Sentry 對您的堆棧跟蹤進行解碼,請同時提供:

  • 要部署的文件(換句話說,您的編譯/壓縮/打包(transpilation/minification/bundling) 過程的結(jié)果;例如,app.min.js)
  • 對應(yīng)的 source maps

如果 source map 文件不包含您的原始源代碼 (sourcesContent),您還必須提供原始源文件。如果源文件丟失,Sentry CLI 將嘗試自動將源嵌入到您的 source maps 中。

Sentry 使用 releases 將正確的 source maps 與您的事件相匹配。要創(chuàng)建新版本,請運行以下命令(例如,在發(fā)布期間):

 

  1. sentry-cli releases new <release_name> 

release 名稱在您的組織中必須是唯一的,并且與您的 SDK 初始化代碼中的 release 選項相匹配。然后,使用 upload-sourcemaps 命令掃描文件夾中的 source maps,處理它們,并將它們上傳到 Sentry。

  1. sentry-cli releases files <release_name> upload-sourcemaps /path/to/files 

您可以通過導(dǎo)航到 [Project] > Project Settings > Source Maps 找到上傳到 Sentry 的工件。

此命令會將所有以 .js 和 .map 結(jié)尾的文件上傳到指定的版本(release)。如果你想改變這些擴展 — 例如,上傳 typescript 源文件 — 使用 --ext 選項:

  1. sentry-cli releases files <release_name> upload-sourcemaps --ext ts --ext map /path/to/files 

到目前為止,該版本處于草稿狀態(tài)(“unreleased”)。上傳所有 source maps 后,您的應(yīng)用程序已成功發(fā)布,使用以下命令完成 release:

 

  1. sentry-cli releases finalize <release_name> 

實戰(zhàn)

Create React App 快速創(chuàng)建一個 Demo

新建一個 typescript app 模板項目:

  1. npx create-react-app my-app --template typescript 

加入 @sentry/react,@sentry/tracing 包:

  1. yarn add @sentry/react @sentry/tracing 

修改項目代碼

進入 src/index.tsx,進行如下調(diào)整:

  1. import React from 'react'
  2. import ReactDOM from 'react-dom'
  3. import './index.css'
  4. import App from './App'
  5. import * as Sentry from "@sentry/react"
  6. import { Integrations } from "@sentry/tracing"
  7.  
  8. Sentry.init({ 
  9.   dsn: "https://token@your.sentry.com/2", // 你的 Sentry 項目 DSN 
  10.   release: "1.0.0"
  11.   integrations: [new Integrations.BrowserTracing()] 
  12. }); 
  13.  
  14. ReactDOM.render( 
  15.   <React.StrictMode> 
  16.     <App /> 
  17.   </React.StrictMode>, 
  18.   document.getElementById('root'
  19. ); 

進入 src/App.tsx,進行如下調(diào)整:

  1. import React from 'react'
  2. import logo from './logo.svg'
  3. import './App.css'
  4.  
  5. const onError = () => { 
  6.   // 這里故意拋出一個錯誤,讓 sentry 捕獲 
  7.   throw new Error("Break the world"
  8.  
  9. const btnStyles = {width: "200px", height: "50px"cursor"pointer", fontSize: "22px"
  10.  
  11. function App() { 
  12.   return ( 
  13.     <div className="App"
  14.       <header className="App-header"
  15.         <button style={btnStyles} onClick={onError}>Break the world</button> 
  16.         <img src={logo} className="App-logo" alt="logo" /> 
  17.       </header> 
  18.     </div> 
  19.   ); 
  20.  
  21. export default App; 

加入 .sentryclirc 文件,詳情可看上篇 -> 快速使用 Docker 上手 Sentry-CLI - 創(chuàng)建一個版本

  1. [auth] 
  2. token=your-auth-token 
  3.  
  4. [defaults] 
  5. org=sentry 
  6. project=create-react-app-sentry 
  7. url=https://x.xxx.com 

編譯項目

  1. yarn build 

最終項目結(jié)構(gòu)

上傳 Source Maps

在項目根目錄中,進入 sentry-cli docker 容器 shell 環(huán)境:

  1. docker run --rm -it -v $(pwd):/work getsentry/sentry-cli /bin/sh 

設(shè)置變量:

  1. VERSION="1.0.0" # 版本號 
  2. SOURCEMAPS_PATH="./build/static/js" # 構(gòu)建的 Source Maps 
  3. URL_PREFIX="~/static/js/" # 說明你的 js 相關(guān)文件被托管在 http://example.com/static/js/ 下 

執(zhí)行如下命令:

  1. sentry-cli releases new "$VERSION" 
  2. # Created release 1.0.0. 
  3.  
  4. sentry-cli releases files "$VERSION" upload-sourcemaps "$SOURCEMAPS_PATH" --url-prefix "$URL_PREFIX" 
  5. # > Found 8 release files 
  6. # > Analyzing 8 sources 
  7. # > Analyzing completed in 0.101s 
  8. # > Rewriting sources 
  9. # > Rewriting completed in 0.034s 
  10. # > Adding source map references 
  11. # > Bundling files for upload...  
  12. # > Bundling completed in 0.064s 
  13. # > Optimizing completed in 0.002s 
  14. # > Uploading completed in 2.144s 
  15. # > Uploaded release files to Sentry 
  16. # > Processing completed in 0.077s 
  17. # > File upload complete (processing pending on server) 
  18.  
  19. # Source Map Upload Report 
  20. #   Minified Scripts 
  21. #     ~/static/js/2.42a26a34.chunk.js (sourcemap at 2.42a26a34.chunk.js.map) 
  22. #     ~/static/js/3.edf82367.chunk.js (sourcemap at 3.edf82367.chunk.js.map) 
  23. #     ~/static/js/main.d1a3df88.chunk.js (sourcemap at main.d1a3df88.chunk.js.map) 
  24. #     ~/static/js/runtime-main.b608d38a.js (sourcemap at runtime-main.b608d38a.js.map) 
  25. #   Source Maps 
  26. #     ~/static/js/2.42a26a34.chunk.js.map 
  27. #     ~/static/js/3.edf82367.chunk.js.map 
  28. #     ~/static/js/main.d1a3df88.chunk.js.map 
  29. #     ~/static/js/runtime-main.b608d38a.js.map 
  30.  
  31. sentry-cli releases finalize "$VERSION" 
  32. # Finalized release 1.0.0. 
  33.  
  34. exit 
  35. # 退出容器 

在 Sentry 后臺,你應(yīng)該看到如下圖:

本地測試

如果你是 Mac 本地開發(fā)環(huán)境,可直接執(zhí)行如下命令:

  1. pushd build; python -m SimpleHTTPServer; popd 

點擊 Break the world 按鈕:

正常情況下,錯誤已被上傳到 Sentry,然后在錯誤詳情中應(yīng)看到如下圖:

 

責(zé)任編輯:武曉燕 來源: 黑客下午茶
相關(guān)推薦

2021-08-31 05:01:46

DockerSentry版本

2021-09-08 09:22:34

SentryCLIOS

2025-02-17 05:00:00

工具項目Cursor

2023-02-02 08:41:14

React團隊Vite

2024-01-30 08:30:41

TypeScript編譯器類型

2009-11-02 17:54:44

VB.NET數(shù)組

2020-11-16 09:50:43

hpm-cli

2024-01-16 07:46:11

2024-03-26 00:00:01

2025-02-06 13:57:26

2022-08-16 10:44:11

Sentry前端異常

2025-02-17 12:24:06

2018-04-24 10:05:13

Docker工具交付

2011-07-26 13:58:17

LINQ

2020-11-10 09:19:23

Spring BootJava開發(fā)

2024-09-24 07:31:52

2025-05-22 10:00:00

DockerRedis容器

2013-11-19 12:53:33

OA信息化

2021-12-10 08:13:02

MatplotlibpythonAPI

2022-08-19 07:13:45

SQL方法編程
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 最新国产精品视频 | 97av视频| 综合久久av | 韩国av一区二区 | 久久精品亚洲欧美日韩精品中文字幕 | 久久久一区二区三区 | 成人欧美一区二区三区1314 | 日本精品视频在线观看 | 7777在线视频 | 美女视频久久 | 久久av一区二区三区 | 黄色网页在线 | 狠狠插狠狠操 | 五月激情婷婷在线 | 精品毛片视频 | 日本中文字幕日韩精品免费 | 日韩一区二区三区在线观看 | 亚洲精品视频在线 | jvid精品资源在线观看 | yiren22综合网成人 | 自拍视频一区二区三区 | 日韩视频在线播放 | 黄片毛片免费看 | 久久福利电影 | 久久久人 | 91就要激情 | 欧美一级黄色片在线观看 | 中文字幕一区二区三区四区 | 在线免费观看黄a | 超碰人人插 | 色偷偷人人澡人人爽人人模 | 国产99久久| 极品国产视频 | 91香蕉嫩草 | 盗摄精品av一区二区三区 | 欧美一区二区免费电影 | 国产欧美精品一区二区色综合朱莉 | 中文字幕一区在线 | 免费在线h视频 | 午夜日韩视频 | 日本在线免费视频 |