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

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

開發 前端
使用 sentry-cli 上傳 source maps 時,您需要設置構建系統以創建版本(release)并上傳與該版本對應的各種源文件。

[[420986]]

本文轉載自微信公眾號「黑客下午茶」,作者為少 。轉載本文請聯系黑客下午茶公眾號。

系列

快速使用 Docker 上手 Sentry-CLI - 創建版本

入門

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

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

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

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

 

  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 

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

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

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

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

 

  1. sentry-cli releases finalize <release_name> 

實戰

Create React App 快速創建一個 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,進行如下調整:

  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,進行如下調整:

  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 - 創建一個版本

  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 

最終項目結構

上傳 Source Maps

在項目根目錄中,進入 sentry-cli docker 容器 shell 環境:

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

設置變量:

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

執行如下命令:

  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 后臺,你應該看到如下圖:

本地測試

如果你是 Mac 本地開發環境,可直接執行如下命令:

  1. pushd build; python -m SimpleHTTPServer; popd 

點擊 Break the world 按鈕:

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

 

責任編輯:武曉燕 來源: 黑客下午茶
相關推薦

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數組

2024-01-16 07:46:11

2020-11-16 09:50:43

hpm-cli

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開發

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技術棧公眾號

主站蜘蛛池模板: 国产精品中文在线 | av在线免费观看网址 | 亚洲欧美日韩一区二区 | 亚洲精品国产一区 | www.日韩欧美 | 国产91丝袜在线18 | 国产精品一区二区三区在线 | 拍拍无遮挡人做人爱视频免费观看 | 久久中文字幕一区 | 羞羞色网站 | www.国产日本| 在线视频 亚洲 | japanhdxxxx裸体 | 国产精品久久久久久久久久免费看 | 亚洲精品一区二区在线观看 | 国产免费一区二区三区 | 国产一区二区中文字幕 | 久久三区| 99精品亚洲国产精品久久不卡 | 欧美精品在线一区 | 男女啪啪高潮无遮挡免费动态 | 91免费观看| 日本一区二区高清视频 | 2020亚洲天堂 | 日韩欧美一区二区三区四区 | 亚洲欧美久久 | h视频免费在线观看 | 国产欧美一区二区精品忘忧草 | 国产福利在线 | 亚洲国产精品激情在线观看 | 成人在线一区二区 | 久久久久久久97 | 欧美综合久久 | 欧美中文字幕一区二区三区亚洲 | 中文字幕第100页 | 高清视频一区二区三区 | 黄网站免费观看 | 国产www成人| 亚洲一区日韩 | 国产成人精品久久二区二区 | 看特级黄色片 |