Reactjs 如何在react项目中自动创建Sentry发布并将源地图上载到Sentry?
我有一个创建react应用程序项目,我希望部署过程生成Sentry版本,并将源地图上载到Sentry。此脚本将为Reactjs 如何在react项目中自动创建Sentry发布并将源地图上载到Sentry?,reactjs,bash,create-react-app,source-maps,sentry,Reactjs,Bash,Create React App,Source Maps,Sentry,我有一个创建react应用程序项目,我希望部署过程生成Sentry版本,并将源地图上载到Sentry。此脚本将为package.json文件中指定的版本创建Sentry版本,并将源地图上载到Sentry 它适用于任何JS项目,而不仅仅是React 在项目根目录中创建一个文件,并将其命名为deploy.sh: SENTRY_TOKEN="YOUR_TOKEN" PACKAGE_VERSION=`cat package.json \ | grep version \ | head -1 \
package.json
文件中指定的版本创建Sentry版本,并将源地图上载到Sentry
它适用于任何JS项目,而不仅仅是React
在项目根目录中创建一个文件,并将其命名为deploy.sh
:
SENTRY_TOKEN="YOUR_TOKEN"
PACKAGE_VERSION=`cat package.json \
| grep version \
| head -1 \
| awk -F: '{ print $2 }' \
| sed 's/[",]//g' \
| tr -d '[[:space:]]'`
printf "\nBuilding version $PACKAGE_VERSION...\n\n"
#2) Build for dev and cd to build directory
npm run build # or whatever your build command is
cd build/static/js # or whatever your build folder is
#3) create Sentry release
SOURCE_MAP=`find . -maxdepth 1 -mindepth 1 -name '*.map' | awk '{ gsub("./", "") ; print $0 }'`
printf "\nCreating a Sentry release for version $PACKAGE_VERSION...\n"
curl https://sentry.io/api/0/projects/:sentry_organization_slug/:sentry_project_slug/releases/ \
-X POST \
-H "Authorization: Bearer ${SENTRY_TOKEN}" \
-H 'Content-Type: application/json' \
-d "{\"version\": \"${PACKAGE_VERSION}\"}" \
#4) Upload a file for the given release
printf "\n\nUploading sourcemap file to Sentry: ${SOURCE_MAP}...\n"
curl "https://sentry.io/api/0/projects/:sentry_organization_slug/:sentry_project_slug/releases/$PACKAGE_VERSION/files/" \
-X POST \
-H "Authorization: Bearer ${SENTRY_TOKEN}" \
-F file=@${SOURCE_MAP} \
-F name="https://THE_URL_OF_THE_MAIN_JS_FILE/$SOURCE_MAP"
#5) IMPORTANT: Delete the sourcemaps before deploying
rm $SOURCE_MAP
#6) upload to your cloud provider
...
替换:
:sentry\u organization\u slug
和:sentry\u project\u slug
具有来自sentry的正确值(来自您的sentry帐户网站内任何页面的URL)SENTRY\u令牌
与您的哨兵令牌主JS\u文件的\u URL\u
以及可公开访问react构建文件的URL请确保不要忘记在每个版本上更新package.json版本我最近遇到了同样的问题,尽管Sentry没有针对Create React App的正式解决方案,但他们的工具非常棒,而且自己创建版本的过程非常容易自动化。您需要生成发布名称、构建应用程序并使用此名称初始化Sentry库、创建Sentry发布和上载sourcemaps 我写了一篇文章,详细解释了如何做到这一点:
或者您可以直接查看已配置项目的示例:如何运行此脚本?此外,在每次部署之前是否需要手动运行此脚本,以及是否使用
npm run build
替换此脚本,因为此脚本已在步骤2中运行该命令?当我编写此答案时,我将其手动用作构建和部署脚本。您也可以在CLI中运行它(例如Travis)。是的,它取代了npm运行构建
@Badrush