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;