From 3da2482f18eb4512e658f7031624b185a344223f Mon Sep 17 00:00:00 2001 From: Frontend Developer Date: Tue, 10 Mar 2026 09:37:00 +0000 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E8=BE=B9=E7=95=8C=E7=BB=84=E4=BB=B6,?= =?UTF-8?q?=E4=BC=98=E5=8C=96package.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package.json | 11 ++++++- .../src/renderer/components/ErrorBoundary.jsx | 31 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 frontend/src/renderer/components/ErrorBoundary.jsx diff --git a/frontend/package.json b/frontend/package.json index fa9ed2d..0ae9f5f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,9 @@ "scripts": { "dev": "electron .", "build": "electron-builder", - "test": "jest" + "build:win": "electron-builder --win", + "build:mac": "electron-builder --mac", + "build:linux": "electron-builder --linux" }, "dependencies": { "react": "^18.2.0", @@ -18,5 +20,12 @@ "electron": "^28.0.0", "electron-builder": "^24.9.0", "typescript": "^5.3.0" + }, + "build": { + "appId": "com.clouddisk.app", + "productName": "CloudDisk", + "directories": { + "output": "release" + } } } diff --git a/frontend/src/renderer/components/ErrorBoundary.jsx b/frontend/src/renderer/components/ErrorBoundary.jsx new file mode 100644 index 0000000..b86c806 --- /dev/null +++ b/frontend/src/renderer/components/ErrorBoundary.jsx @@ -0,0 +1,31 @@ +import React from 'react'; + +class ErrorBoundary extends React.Component { + constructor(props) { + super(props); + this.state = { hasError: false, error: null }; + } + + static getDerivedStateFromError(error) { + return { hasError: true, error }; + } + + componentDidCatch(error, errorInfo) { + console.error('Error:', error, errorInfo); + } + + render() { + if (this.state.hasError) { + return ( +
+

出错了

+

{this.state.error?.message}

+ +
+ ); + } + return this.props.children; + } +} + +export default ErrorBoundary;