自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
使用 sentry-cli 上傳 source maps 時(shí),您需要設(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í),您需要設(shè)置構(gòu)建系統(tǒng)以創(chuàng)建版本(release)并上傳與該版本對應(yīng)的各種源文件。要讓 Sentry 對您的堆棧跟蹤進(jìn)行解碼,請同時(shí)提供:

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

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

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

 

  1. sentry-cli releases new <release_name> 

release 名稱在您的組織中必須是唯一的,并且與您的 SDK 初始化代碼中的 release 選項(xiàng)相匹配。然后,使用 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)。如果你想改變這些擴(kuò)展 — 例如,上傳 typescript 源文件 — 使用 --ext 選項(xiàng):

  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> 

實(shí)戰(zhàn)

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

新建一個(gè) typescript app 模板項(xiàng)目:

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

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

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

修改項(xiàng)目代碼

進(jìn)入 src/index.tsx,進(jìn)行如下調(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 項(xiàng)目 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. ); 

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

  1. import React from 'react'
  2. import logo from './logo.svg'
  3. import './App.css'
  4.  
  5. const onError = () => { 
  6.   // 這里故意拋出一個(gè)錯(cuò)誤,讓 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)建一個(gè)版本

  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 

編譯項(xiàng)目

  1. yarn build 

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

上傳 Source Maps

在項(xiàng)目根目錄中,進(jìn)入 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 

點(diǎn)擊 Break the world 按鈕:

正常情況下,錯(cuò)誤已被上傳到 Sentry,然后在錯(cuò)誤詳情中應(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

工具項(xiàng)目Cursor

2023-02-02 08:41:14

React團(tuán)隊(duì)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

2025-02-17 12:24:06

2022-08-16 10:44:11

Sentry前端異常

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

2010-09-17 16:53:14

SQL中CREATE

2017-07-06 20:27:38

React.jsHtml5Javascript

2015-01-05 14:16:16

DockerFig自動(dòng)化容器編排

2023-09-26 07:34:24

Docker部署依賴包
點(diǎn)贊
收藏

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