From 70585d6c7473abe1166b3afb875e23a0c6e1ac38 Mon Sep 17 00:00:00 2001
From: "2569718930@qq.com" <2569718930@qq.com>
Date: Fri, 6 Mar 2026 20:48:19 +0800
Subject: [PATCH] feat: Initialize Next.js frontend project with core
dependencies and root layout.
---
frontend/app/layout.tsx | 2 ++
frontend/package-lock.json | 44 ++++++++++++++++++++++++++++++++++++++
frontend/package.json | 1 +
3 files changed, 47 insertions(+)
diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx
index dfd7cc68..f90f487a 100644
--- a/frontend/app/layout.tsx
+++ b/frontend/app/layout.tsx
@@ -1,4 +1,5 @@
import type { Metadata } from "next";
+import { Analytics } from "@vercel/analytics/react";
import "./globals.css";
export const metadata: Metadata = {
@@ -14,6 +15,7 @@ export default function RootLayout({
{children}
+
);
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 1404d469..854c85ad 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"@radix-ui/react-slot": "^1.1.2",
+ "@vercel/analytics": "^1.6.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"leaflet": "^1.9.4",
@@ -778,6 +779,43 @@
"@types/react": "^19.2.0"
}
},
+ "node_modules/@vercel/analytics": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmmirror.com/@vercel/analytics/-/analytics-1.6.1.tgz",
+ "integrity": "sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==",
+ "peerDependencies": {
+ "@remix-run/react": "^2",
+ "@sveltejs/kit": "^1 || ^2",
+ "next": ">= 13",
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "svelte": ">= 4",
+ "vue": "^3",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@remix-run/react": {
+ "optional": true
+ },
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
"node_modules/any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz",
@@ -2443,6 +2481,12 @@
"dev": true,
"requires": {}
},
+ "@vercel/analytics": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmmirror.com/@vercel/analytics/-/analytics-1.6.1.tgz",
+ "integrity": "sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==",
+ "requires": {}
+ },
"any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index c320fdc3..bb8a9992 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"@radix-ui/react-slot": "^1.1.2",
+ "@vercel/analytics": "^1.6.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"leaflet": "^1.9.4",