<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>萧邦 &#8211; 萧邦的博客</title>
	<atom:link href="https://www.zlhlab.top/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.zlhlab.top</link>
	<description>If not me who, If not now when</description>
	<lastBuildDate>Mon, 03 Aug 2026 06:34:56 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.6</generator>
	<item>
		<title>前端乾坤与模块联邦的用法及区别</title>
		<link>https://www.zlhlab.top/%e5%89%8d%e7%ab%af%e4%b9%be%e5%9d%a4%e4%b8%8e%e6%a8%a1%e5%9d%97%e8%81%94%e9%82%a6%e7%9a%84%e7%94%a8%e6%b3%95%e5%8f%8a%e5%8c%ba%e5%88%ab/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Mon, 03 Aug 2026 06:29:01 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=847</guid>

					<description><![CDATA[概述 乾坤（Qiankun）和模块联邦（Module Federation）是前端微服务架构中常用的两种技术方<div class="more-link">
				 <a href="https://www.zlhlab.top/%e5%89%8d%e7%ab%af%e4%b9%be%e5%9d%a4%e4%b8%8e%e6%a8%a1%e5%9d%97%e8%81%94%e9%82%a6%e7%9a%84%e7%94%a8%e6%b3%95%e5%8f%8a%e5%8c%ba%e5%88%ab/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">概述</h2>



<p>乾坤（Qiankun）和模块联邦（Module Federation）是前端微服务架构中常用的两种技术方案，用于实现模块化开发、动态加载和跨应用共享代码。两者在微前端场景下有各自的特点和适用场景。本文将详细介绍它们的用法、核心概念以及主要区别。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">一、乾坤（Qiankun）</h2>



<h3 class="wp-block-heading">1. 简介</h3>



<p>乾坤是基于 single-spa 的微前端框架，由蚂蚁金服开源，旨在提供开箱即用的微前端解决方案。它通过主应用和子应用的分离，动态加载子应用，支持多种前端框架（如 React、Vue、Angular 等）。</p>



<h3 class="wp-block-heading">2. 核心概念</h3>



<ul class="wp-block-list">
<li><strong>主应用（Main App）</strong>：负责加载和管理子应用，控制路由和生命周期。</li>



<li><strong>子应用（Sub App）</strong>：独立的微前端应用，可以使用不同技术栈，动态加载到主应用中。</li>



<li><strong>生命周期</strong>：乾坤定义了子应用的生命周期钩子，包括 <code>bootstrap</code>、<code>mount</code> 和 <code>unmount</code>。</li>



<li><strong>沙箱机制</strong>：通过 JS 沙箱（ProxySandbox 或 SnapshotSandbox）隔离子应用的全局变量和样式，防止冲突。</li>



<li><strong>通信机制</strong>：通过全局状态管理（如 <code>initGlobalState</code>）或事件机制实现主子应用通信。</li>
</ul>



<h3 class="wp-block-heading">3. 用法</h3>



<h4 class="wp-block-heading">主应用配置</h4>



<p>主应用需引入乾坤并注册子应用：</p>



<pre class="wp-block-code"><code>// main.js
import { registerMicroApps, start } from 'qiankun';

const apps = &#91;
  {
    name: 'reactApp',
    entry: '//localhost:3001', // 子应用入口
    container: '#subapp-container', // 渲染容器
    activeRule: '/react', // 路由匹配规则
  },
  {
    name: 'vueApp',
    entry: '//localhost:3002',
    container: '#subapp-container',
    activeRule: '/vue',
  },
];

registerMicroApps(apps);
start({
  prefetch: true, // 预加载子应用资源
  sandbox: { experimentalStyleIsolation: true }, // 开启样式隔离
});
</code></pre>



<h4 class="wp-block-heading">子应用配置</h4>



<p>子应用需暴露生命周期钩子：</p>



<pre class="wp-block-code"><code>// 子应用入口文件
export async function bootstrap() {
  console.log('子应用初始化');
}

export async function mount(props) {
  console.log('子应用挂载', props);
  // 渲染逻辑
}

export async function unmount() {
  console.log('子应用卸载');
  // 清理逻辑
}
</code></pre>



<h4 class="wp-block-heading">通信</h4>



<p>主应用通过 <code>initGlobalState</code> 初始化全局状态：</p>



<pre class="wp-block-code"><code>import { initGlobalState } from 'qiankun';

const state = { user: 'admin' };
const actions = initGlobalState(state);

actions.onGlobalStateChange((newState, prev) =&gt; {
  console.log('全局状态变更', newState, prev);
});
</code></pre>



<p>子应用通过 <code>props</code> 接收状态：</p>



<pre class="wp-block-code"><code>export async function mount(props) {
  props.onGlobalStateChange((state, prev) =&gt; {
    console.log('子应用接收状态', state);
  });
}
</code></pre>



<h3 class="wp-block-heading">4. 优点</h3>



<ul class="wp-block-list">
<li><strong>开箱即用</strong>：提供完整的微前端解决方案，集成路由、沙箱和通信机制。</li>



<li><strong>技术栈无关</strong>：支持多种框架，子应用无需大幅修改。</li>



<li><strong>沙箱隔离</strong>：内置 JS 和 CSS 隔离机制，减少冲突。</li>



<li><strong>生态丰富</strong>：与 single-spa 生态兼容，社区支持完善。</li>
</ul>



<h3 class="wp-block-heading">5. 缺点</h3>



<ul class="wp-block-list">
<li><strong>侵入性</strong>：子应用需适配乾坤的生命周期，略有改造成本。</li>



<li><strong>性能开销</strong>：沙箱机制可能增加性能消耗，尤其在多子应用场景。</li>



<li><strong>复杂场景适配</strong>：对复杂路由或深度集成场景需额外配置。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">二、模块联邦（Module Federation）</h2>



<h3 class="wp-block-heading">1. 简介</h3>



<p>模块联邦是 Webpack 5 引入的功能，允许在构建时将多个独立构建的应用模块化共享代码，实现动态加载和运行时共享。它更偏向于模块级别的复用，而不是完整的应用加载。</p>



<h3 class="wp-block-heading">2. 核心概念</h3>



<ul class="wp-block-list">
<li><strong>主机（Host）</strong>：加载远程模块的应用。</li>



<li><strong>远程（Remote）</strong>：暴露模块供其他应用使用的应用。</li>



<li><strong>模块暴露</strong>：通过 <code>exposes</code> 配置暴露模块，供主机消费。</li>



<li><strong>模块消费</strong>：通过 <code>remotes</code> 配置引用远程模块。</li>



<li><strong>共享模块</strong>：通过 <code>shared</code> 配置共享依赖（如 React、Vue），减少重复加载。</li>
</ul>



<h3 class="wp-block-heading">3. 用法</h3>



<h4 class="wp-block-heading">主机应用配置</h4>



<p>在 <code>webpack.config.js</code> 中配置：</p>



<pre class="wp-block-code"><code>const { ModuleFederationPlugin } = require('webpack').container;

module.exports = {
  plugins: &#91;
    new ModuleFederationPlugin({
      name: 'host',
      remotes: {
        remoteApp: 'remoteApp@http://localhost:3001/remoteEntry.js',
      },
      shared: {
        react: { singleton: true },
        'react-dom': { singleton: true },
      },
    }),
  ],
};
</code></pre>



<h4 class="wp-block-heading">远程应用配置</h4>



<p>在远程应用的 <code>webpack.config.js</code> 中暴露模块：</p>



<pre class="wp-block-code"><code>module.exports = {
  plugins: &#91;
    new ModuleFederationPlugin({
      name: 'remoteApp',
      filename: 'remoteEntry.js',
      exposes: {
        './Button': './src/Button',
      },
      shared: {
        react: { singleton: true },
        'react-dom': { singleton: true },
      },
    }),
  ],
};
</code></pre>



<h4 class="wp-block-heading">使用远程模块</h4>



<p>在主机应用中动态加载远程模块：</p>



<pre class="wp-block-code"><code>import React, { lazy, Suspense } from 'react';

const RemoteButton = lazy(() =&gt; import('remoteApp/Button'));

function App() {
  return (
    &lt;Suspense fallback="Loading..."&gt;
      &lt;RemoteButton /&gt;
    &lt;/Suspense&gt;
  );
}
</code></pre>



<h3 class="wp-block-heading">4. 优点</h3>



<ul class="wp-block-list">
<li><strong>轻量灵活</strong>：仅处理模块级共享，无需生命周期管理，侵入性低。</li>



<li><strong>运行时加载</strong>：支持动态加载模块，适合按需加载场景。</li>



<li><strong>依赖共享</strong>：通过 <code>shared</code> 机制减少重复依赖加载，优化性能。</li>



<li><strong>生态支持</strong>：Webpack 生态强大，适配现代前端工具链。</li>
</ul>



<h3 class="wp-block-heading">5. 缺点</h3>



<ul class="wp-block-list">
<li><strong>配置复杂</strong>：需要手动配置 Webpack，学习成本较高。</li>



<li><strong>隔离性弱</strong>：无内置沙箱机制，需自行处理样式和全局变量冲突。</li>



<li><strong>功能局限</strong>：更适合模块共享，不适合完整应用的微前端架构。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">三、乾坤与模块联邦的区别</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>特性</th><th>乾坤（Qiankun）</th><th>模块联邦（Module Federation）</th></tr></thead><tbody><tr><td><strong>定位</strong></td><td>完整的微前端框架</td><td>Webpack 的模块共享机制</td></tr><tr><td><strong>核心功能</strong></td><td>子应用加载、路由管理、沙箱隔离、通信</td><td>模块动态加载、依赖共享</td></tr><tr><td><strong>技术栈支持</strong></td><td>支持多种框架（React、Vue 等）</td><td>依赖 Webpack，框架无关</td></tr><tr><td><strong>隔离机制</strong></td><td>内置 JS 和 CSS 沙箱</td><td>无内置沙箱，需手动处理隔离</td></tr><tr><td><strong>通信机制</strong></td><td>全局状态管理、事件机制</td><td>通过模块 props 或自定义通信</td></tr><tr><td><strong>使用场景</strong></td><td>适合复杂微前端项目，需加载完整子应用</td><td>适合模块级共享，按需加载组件或功能</td></tr><tr><td><strong>侵入性</strong></td><td>子应用需适配生命周期钩子</td><td>侵入性低，仅需配置 Webpack</td></tr><tr><td><strong>性能</strong></td><td>沙箱和生命周期管理有一定开销</td><td>轻量，依赖共享优化性能</td></tr><tr><td><strong>学习成本</strong></td><td>简单，文档完善</td><td>配置复杂，需熟悉 Webpack</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">四、适用场景分析</h2>



<h3 class="wp-block-heading">1. 选择乾坤的场景</h3>



<ul class="wp-block-list">
<li>需要管理多个完整的前端应用（如不同团队开发的独立项目）。</li>



<li>对隔离性要求高（如需要严格的 JS 和 CSS 隔离）。</li>



<li>希望快速集成多种技术栈的应用，追求开箱即用。</li>



<li>需要统一的路由管理和全局状态管理。</li>
</ul>



<h3 class="wp-block-heading">2. 选择模块联邦的场景</h3>



<ul class="wp-block-list">
<li>需要在多个应用间共享特定模块或组件（如共享一个通用按钮组件）。</li>



<li>追求轻量级模块加载，减少重复依赖加载。</li>



<li>项目基于 Webpack 构建，团队熟悉 Webpack 配置。</li>



<li>不需要复杂的子应用生命周期管理。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">五、总结</h2>



<p>乾坤和模块联邦都是前端微服务化的重要工具，但定位和实现方式不同：</p>



<ul class="wp-block-list">
<li><strong>乾坤</strong> 更适合需要管理多个完整应用的微前端场景，提供全面的隔离和通信机制，适合复杂项目。</li>



<li><strong>模块联邦</strong> 更适合模块级别的共享和动态加载，配置灵活但隔离性较弱，适合轻量级模块复用场景。</li>
</ul>



<p>根据项目需求选择合适的方案：</p>



<ul class="wp-block-list">
<li>如果是大型微前端项目，推荐使用乾坤以获得完整的框架支持。</li>



<li>如果是模块共享或轻量级微前端场景，模块联邦是更好的选择。</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>JX智慧工牌小程序</title>
		<link>https://www.zlhlab.top/jx%e6%99%ba%e6%85%a7%e5%b7%a5%e7%89%8c%e5%b0%8f%e7%a8%8b%e5%ba%8f/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Mon, 03 Aug 2026 03:33:34 +0000</pubDate>
				<category><![CDATA[APP]]></category>
		<category><![CDATA[案例]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=900</guid>

					<description><![CDATA[JX智能工牌小程序是聚信工牌的小程序版本，包含核心指标概览、接待回话、录音库，客户线索管理，以及归因分析查看等<div class="more-link">
				 <a href="https://www.zlhlab.top/jx%e6%99%ba%e6%85%a7%e5%b7%a5%e7%89%8c%e5%b0%8f%e7%a8%8b%e5%ba%8f/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>JX智能工牌小程序是聚信工牌的小程序版本，包含核心指标概览、接待回话、录音库，客户线索管理，以及归因分析查看等功能，帮助销售顾问可以在微信端快速查看。</p>



<p>项目截图</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="471" height="1024" data-id="901" src="https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-471x1024.png" alt="" class="wp-image-901" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-471x1024.png 471w, https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-138x300.png 138w, https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-768x1670.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-706x1536.png 706w, https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-942x2048.png 942w, https://www.zlhlab.top/wp-content/uploads/2026/05/4461778120259_.pic_hd-scaled.png 1177w" sizes="(max-width: 471px) 100vw, 471px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" data-id="902" src="https://www.zlhlab.top/wp-content/uploads/2026/05/4521778120265_.pic_hd-471x1024.png" alt="" class="wp-image-902"/></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="471" height="1024" data-id="903" src="https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-471x1024.png" alt="" class="wp-image-903" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-471x1024.png 471w, https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-138x300.png 138w, https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-768x1670.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-706x1536.png 706w, https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-942x2048.png 942w, https://www.zlhlab.top/wp-content/uploads/2026/05/4511778120264_.pic_hd-scaled.png 1177w" sizes="(max-width: 471px) 100vw, 471px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="471" height="1024" data-id="904" src="https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-471x1024.png" alt="" class="wp-image-904" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-471x1024.png 471w, https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-138x300.png 138w, https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-768x1670.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-706x1536.png 706w, https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-942x2048.png 942w, https://www.zlhlab.top/wp-content/uploads/2026/05/4501778120263_.pic_hd-scaled.png 1177w" sizes="(max-width: 471px) 100vw, 471px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="471" height="1024" data-id="905" src="https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-471x1024.png" alt="" class="wp-image-905" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-471x1024.png 471w, https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-138x300.png 138w, https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-768x1670.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-706x1536.png 706w, https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-942x2048.png 942w, https://www.zlhlab.top/wp-content/uploads/2026/05/4481778120261_.pic_hd-scaled.png 1177w" sizes="auto, (max-width: 471px) 100vw, 471px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="471" height="1024" data-id="906" src="https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-471x1024.png" alt="" class="wp-image-906" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-471x1024.png 471w, https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-138x300.png 138w, https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-768x1670.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-706x1536.png 706w, https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-942x2048.png 942w, https://www.zlhlab.top/wp-content/uploads/2026/05/4471778120260_.pic_hd-scaled.png 1177w" sizes="auto, (max-width: 471px) 100vw, 471px" /></figure>
</figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DCC智能外呼系统</title>
		<link>https://www.zlhlab.top/dcc%e6%99%ba%e8%83%bd%e5%a4%96%e5%91%bc%e7%b3%bb%e7%bb%9f/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Mon, 11 May 2026 02:48:19 +0000</pubDate>
				<category><![CDATA[案例]]></category>
		<category><![CDATA[软件]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=908</guid>

					<description><![CDATA[基于AI大模型的智能交互数据监控中心，提供智能交互、质检配置、录音库管、数据报表等全方位功能，为企业提供智能化<div class="more-link">
				 <a href="https://www.zlhlab.top/dcc%e6%99%ba%e8%83%bd%e5%a4%96%e5%91%bc%e7%b3%bb%e7%bb%9f/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>基于AI大模型的智能交互数据监控中心，提供智能交互、质检配置、录音库管、数据报表等全方位功能，为企业提供智能化数据管理解决方案。</p>



<p>DCC智能外呼系统采用<em>AXB模式</em>获取号码池，然后通过外呼系统管理客户线索，并且进行通话录音质检，为厂商和经销商提供服务质量监控和管理。</p>



<h2 class="wp-block-heading">项目页面</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image alignfull size-large"><img loading="lazy" decoding="async" width="1024" height="560" data-id="909" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.54.05-1024x560.png" alt="" class="wp-image-909" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.54.05-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.54.05-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.54.05-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.54.05-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.54.05-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image alignfull size-full"><img loading="lazy" decoding="async" width="2560" height="1401" data-id="910" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-scaled.png" alt="" class="wp-image-910" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-scaled.png 2560w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.53.20-2048x1121.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" data-id="911" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.52.46-1024x560.png" alt="" class="wp-image-911" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.52.46-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.52.46-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.52.46-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.52.46-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.52.46-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image alignfull size-large"><img loading="lazy" decoding="async" width="1024" height="560" data-id="912" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.52-1024x560.png" alt="" class="wp-image-912" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.52-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.52-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.52-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.52-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.52-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="561" data-id="913" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.33-1024x561.png" alt="" class="wp-image-913" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.33-1024x561.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.33-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.33-768x421.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.33-1536x842.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.51.33-2048x1122.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image alignfull size-large"><img loading="lazy" decoding="async" width="1024" height="561" data-id="914" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.57.06-1024x561.png" alt="" class="wp-image-914" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.57.06-1024x561.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.57.06-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.57.06-768x421.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.57.06-1536x842.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-17.57.06-2048x1122.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI智能工牌管理系统</title>
		<link>https://www.zlhlab.top/%e6%99%ba%e8%83%bd%e5%b7%a5%e7%89%8c%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Sat, 09 May 2026 05:55:45 +0000</pubDate>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Vue3]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=849</guid>

					<description><![CDATA[项目简介 AI智慧工牌系统是一款自主研发的平台，集成录音采集设备、讯飞ASR与阿里千问大模型，专注于录音文件的<div class="more-link">
				 <a href="https://www.zlhlab.top/%e6%99%ba%e8%83%bd%e5%b7%a5%e7%89%8c%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">项目简介</h3>



<p>AI智慧工牌系统是一款自主研发的平台，集成录音采集设备、讯飞ASR与阿里千问大模型，专注于录音文件的智能检核。平台支持硬件设备管理、设备与销售人员绑定、录音采集与合成等功能。在录音分析方面，系统支持多智能体创建及提示词编写与维护，借助AI大模型生成会话摘要、接待不足分析及下一步改进建议，并通过提取关键标签生成质检洞察报表。此外，系统还涵盖核心指标看板、知识库管理、系统权限管理等辅助功能。</p>



<h3 class="wp-block-heading">项目UI</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.46.03-1024x560.png" alt="" class="wp-image-898" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.46.03-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.46.03-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.46.03-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.46.03-1536x839.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.46.03-2048x1119.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" data-id="897" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.43.57-1024x560.png" alt="" class="wp-image-897" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.43.57-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.43.57-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.43.57-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.43.57-1536x839.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.43.57-2048x1119.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image alignfull size-large"><img loading="lazy" decoding="async" width="1024" height="560" data-id="895" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.09-1024x560.png" alt="" class="wp-image-895" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.09-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.09-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.09-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.09-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.09-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.30-1024x560.png" alt="" class="wp-image-894" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.30-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.30-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.30-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.30-1536x839.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.30-2048x1119.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="559" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.47-1024x559.png" alt="" class="wp-image-892" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.47-1024x559.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.47-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.47-768x419.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.47-1536x838.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.36.47-2048x1118.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.12-1024x560.png" alt="" class="wp-image-891" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.12-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.12-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.12-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.12-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.12-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.24-1024x560.png" alt="" class="wp-image-890" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.24-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.24-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.24-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.24-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.24-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.39-1024x560.png" alt="" class="wp-image-889" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.39-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.39-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.39-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.39-1536x839.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.37.39-2048x1119.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.39.36-1024x560.png" alt="" class="wp-image-888" srcset="https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.39.36-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.39.36-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.39.36-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.39.36-1536x839.png 1536w, https://www.zlhlab.top/wp-content/uploads/2026/05/截屏2026-05-09-15.39.36-2048x1119.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>聚信智宸官网</title>
		<link>https://www.zlhlab.top/%e8%81%9a%e4%bf%a1%e6%99%ba%e5%ae%b8%e5%ae%98%e7%bd%91/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Thu, 18 Sep 2025 03:42:18 +0000</pubDate>
				<category><![CDATA[案例]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[next.js]]></category>
		<category><![CDATA[Prisma]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=861</guid>

					<description><![CDATA[传统站点开发采用UI设计、前端开发与后端API提供相分离的模式。随着AI技术的发展，Figma、Cursor等<div class="more-link">
				 <a href="https://www.zlhlab.top/%e8%81%9a%e4%bf%a1%e6%99%ba%e5%ae%b8%e5%ae%98%e7%bd%91/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>传统站点开发采用UI设计、前端开发与后端API提供相分离的模式。随着AI技术的发展，Figma、Cursor等工具已能辅助完成UI设计及代码生成。开发人员借助AI增强能力，可基于需求快速进行站点微调与风格切换，从而显著提升开发效率。</p>



<h2 class="wp-block-heading">技术架构</h2>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>UI：采用cursor+figma进行站点设计</p>



<p>前端：采用next.js框架</p>



<p>后端：next.js </p>



<p>数据库：prisma</p>



<p>CICD部署：github+vercel平台</p>



<p></p>
</div>



<h2 class="wp-block-heading">网站设计</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.17.09-1024x560.png" alt="" class="wp-image-882" srcset="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.17.09-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.17.09-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.17.09-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.17.09-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.17.09-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.52-1-1024x560.png" alt="" class="wp-image-885" srcset="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.52-1-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.52-1-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.52-1-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.52-1-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.52-1-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.28-scaled-e1778307736809-1024x560.png" alt="" class="wp-image-884" srcset="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.28-scaled-e1778307736809-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.28-scaled-e1778307736809-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.28-scaled-e1778307736809-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.28-scaled-e1778307736809-1536x840.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.16.28-scaled-e1778307736809-2048x1120.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="560" src="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.19.26-1024x560.png" alt="" class="wp-image-886" srcset="https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.19.26-1024x560.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.19.26-300x164.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.19.26-768x420.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.19.26-1536x841.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/09/截屏2026-05-09-14.19.26-2048x1121.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>在 Vercel 上部署 Python Flask 或 FastAPI 项目</title>
		<link>https://www.zlhlab.top/%e5%9c%a8-vercel-%e4%b8%8a%e9%83%a8%e7%bd%b2-python-flask-%e6%88%96-fastapi-%e9%a1%b9%e7%9b%ae/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Tue, 09 Sep 2025 02:44:41 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[fastapi]]></category>
		<category><![CDATA[vercel]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=844</guid>

					<description><![CDATA[Vercel 是一个广受欢迎的 Web 应用部署平台，以其简单性和无服务器架构而闻名。虽然它常用于部署像 Ne<div class="more-link">
				 <a href="https://www.zlhlab.top/%e5%9c%a8-vercel-%e4%b8%8a%e9%83%a8%e7%bd%b2-python-flask-%e6%88%96-fastapi-%e9%a1%b9%e7%9b%ae/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>Vercel 是一个广受欢迎的 Web 应用部署平台，以其简单性和无服务器架构而闻名。虽然它常用于部署像 Next.js 这样的前端框架，但 Vercel 也支持基于 Python 的后端框架，如 Flask 和 FastAPI。本文将指导您完成在 Vercel 上部署 Python Flask 或 FastAPI 项目的步骤，包括项目设置、配置和部署。</p>



<h2 class="wp-block-heading">前提条件</h2>



<p>在开始之前，请确保您具备以下条件：</p>



<ul class="wp-block-list">
<li>一个 Vercel 账户（在 <a href="https://vercel.com/">vercel.com</a> 注册）。</li>



<li>一个准备好部署的 Flask 或 FastAPI 项目。</li>



<li>对 Python、Flask/FastAPI 和 Git 的基本了解。</li>



<li>已安装 Vercel CLI（运行 <code>npm install -g vercel</code>）。</li>



<li>项目已托管在 Git 仓库中（例如 GitHub、GitLab 或 Bitbucket）。</li>
</ul>



<h2 class="wp-block-heading">步骤 1：准备您的 Flask/FastAPI 项目</h2>



<p>要在 Vercel 上部署 Python 项目，您的应用必须适配 Vercel 的无服务器环境。以下是如何准备 Flask 或 FastAPI 项目。</p>



<h3 class="wp-block-heading">Flask 项目示例</h3>



<p>对于 Flask 项目，确保您的项目结构如下：</p>



<pre class="wp-block-code"><code>my-flask-app/
├── app.py
├── requirements.txt
├── vercel.json
</code></pre>



<p><strong>app.py</strong>（示例 Flask 应用）：</p>



<pre class="wp-block-code"><code>from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return '来自 Vercel 上的 Flask 的问候！'

if __name__ == '__main__':
    app.run()
</code></pre>



<h3 class="wp-block-heading">FastAPI 项目示例</h3>



<p>对于 FastAPI 项目，结构类似：</p>



<pre class="wp-block-code"><code>my-fastapi-app/
├── main.py
├── requirements.txt
├── vercel.json
</code></pre>



<p><strong>main.py</strong>（示例 FastAPI 应用）：</p>



<pre class="wp-block-code"><code>from fastapi import FastAPI

app = FastAPI()

@app.get('/')
async def root():
    return {'message': '来自 Vercel 上的 FastAPI 的问候！'}
</code></pre>



<h3 class="wp-block-heading">依赖文件</h3>



<p>创建一个 <code>requirements.txt</code> 文件，列出项目的依赖项：</p>



<pre class="wp-block-code"><code># 对于 Flask
flask==2.3.2
gunicorn==20.1.0

# 对于 FastAPI
fastapi==0.95.1
uvicorn==0.21.1
</code></pre>



<p>Vercel 使用 <code>gunicorn</code> 作为 Flask 的 WSGI 服务器，使用 <code>uvicorn</code> 作为 FastAPI 的 ASGI 服务器，以在无服务器环境中处理请求。</p>



<h2 class="wp-block-heading">步骤 2：配置 Vercel</h2>



<p>Vercel 需要一个 <code>vercel.json</code> 配置文件来理解如何构建和部署您的 Python 项目。该文件指定了构建过程、路由和运行时设置。</p>



<h3 class="wp-block-heading">Flask 的 Vercel 配置</h3>



<p>在项目根目录创建 <code>vercel.json</code> 文件：</p>



<pre class="wp-block-code"><code>{
  "version": 2,
  "builds": &#91;
    {
      "src": "app.py",
      "use": "@vercel/python"
    }
  ],
  "routes": &#91;
    {
      "src": "/(.*)",
      "dest": "app.py"
    }
  ]
}
</code></pre>



<h3 class="wp-block-heading">FastAPI 的 Vercel 配置</h3>



<p>对于 FastAPI，<code>vercel.json</code> 文件因其 ASGI 特性略有不同：</p>



<pre class="wp-block-code"><code>{
  "version": 2,
  "builds": &#91;
    {
      "src": "main.py",
      "use": "@vercel/python"
    }
  ],
  "routes": &#91;
    {
      "src": "/(.*)",
      "dest": "main.py"
    }
  ]
}
</code></pre>



<h3 class="wp-block-heading"><code>vercel.json</code> 说明</h3>



<ul class="wp-block-list">
<li><code>"version": 2</code>：指定 Vercel 配置版本。</li>



<li><code>"builds"</code>：定义构建过程。这里我们使用 <code>@vercel/python</code> 运行时来处理 Python 应用。</li>



<li><code>"routes"</code>：将所有传入请求映射到您的应用文件（Flask 为 <code>app.py</code>，FastAPI 为 <code>main.py</code>）。</li>
</ul>



<h2 class="wp-block-heading">步骤 3：本地测试</h2>



<p>在部署之前，先在本地测试您的应用以确保其正常运行。</p>



<p>对于 Flask：</p>



<pre class="wp-block-code"><code>pip install -r requirements.txt
gunicorn --bind 0.0.0.0:8000 app:app
</code></pre>



<p>对于 FastAPI：</p>



<pre class="wp-block-code"><code>pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000
</code></pre>



<p>在浏览器中访问 <code>http://localhost:8000</code> 以验证应用是否运行正常。</p>



<h2 class="wp-block-heading">步骤 4：部署到 Vercel</h2>



<p>项目准备好后，您可以将其部署到 Vercel。</p>



<ol class="wp-block-list">
<li><strong>初始化 Git 仓库</strong>（如果尚未完成）： <code>git init git add . git commit -m "初始提交"</code></li>



<li><strong>推送到 Git 托管服务</strong>（如 GitHub）： <code>git remote add origin &lt;您的仓库地址> git push origin main</code></li>



<li><strong>将 Vercel 链接到您的仓库</strong>：
<ul class="wp-block-list">
<li>使用 CLI 登录 Vercel：<code>vercel login</code></li>



<li>部署您的项目：<code>vercel</code></li>



<li>按照提示将项目链接到 Git 仓库或直接部署。Vercel 将检测 Python 运行时并使用 <code>vercel.json</code> 中的设置。</li>
</ul>
</li>



<li><strong>设置环境变量</strong>（如需要）：<br>如果您的应用需要环境变量（例如 API 密钥），在 Vercel 仪表板的 <strong>设置 > 环境变量</strong> 中添加它们。</li>



<li><strong>验证部署</strong>：<br>部署完成后，Vercel 会提供一个 URL（例如 <code>https://my-flask-app.vercel.app</code>）。访问该 URL 确认您的应用已上线。</li>
</ol>



<h2 class="wp-block-heading">步骤 5：持续部署</h2>



<p>要启用持续部署，请将您的 Git 仓库连接到 Vercel：</p>



<ul class="wp-block-list">
<li>在 Vercel 仪表板中，前往 <strong>新建项目</strong> 并导入您的仓库。</li>



<li>配置项目设置（Vercel 会自动检测 <code>vercel.json</code> 文件）。</li>



<li>推送到您的仓库，Vercel 将自动重新部署。</li>
</ul>



<h2 class="wp-block-heading">故障排除提示</h2>



<ul class="wp-block-list">
<li><strong>构建错误</strong>：确保 <code>requirements.txt</code> 包含所有依赖项，并且 <code>@vercel/python</code> 与您的 Python 版本兼容（Vercel 支持 Python 3.9+）。</li>



<li><strong>路由问题</strong>：检查 <code>vercel.json</code> 中的 <code>routes</code> 是否正确映射到您的应用入口点。</li>



<li><strong>超时错误</strong>：Vercel 的无服务器函数有最大执行时间（Hobby 计划为 10 秒，Pro 计划为 60 秒）。优化您的应用以快速响应。</li>



<li><strong>日志</strong>：在 Vercel 仪表板的 <strong>Functions > Logs</strong> 中查看部署日志以进行调试。</li>
</ul>



<h2 class="wp-block-heading">最佳实践</h2>



<ul class="wp-block-list">
<li><strong>保持依赖最小化</strong>：在 <code>requirements.txt</code> 中仅包含必要的包，以减少构建时间。</li>



<li><strong>使用环境变量</strong>：将敏感数据（例如数据库凭据）存储在 Vercel 的环境变量中。</li>



<li><strong>优化无服务器环境</strong>：确保您的应用是无状态的，因为 Vercel 的无服务器环境不会在请求之间保留状态。</li>



<li><strong>使用 Vercel CLI 本地测试</strong>：使用 <code>vercel dev</code> 模拟 Vercel 的本地环境。</li>
</ul>



<h2 class="wp-block-heading">结论</h2>



<p>通过正确的配置，在 Vercel 上部署 Flask 或 FastAPI 项目非常简单。通过设置项目结构、创建 <code>vercel.json</code> 文件并使用 Vercel 的 CLI 或仪表板，您可以在几分钟内让您的 Python 后端上线。无论您是构建简单的 API 还是完整的 Web 应用，Vercel 的无服务器平台都提供了一个可扩展且无忧的部署解决方案。</p>



<p>祝您部署顺利！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>凡人修仙与交易之路：谨小慎微，尽人事听天命</title>
		<link>https://www.zlhlab.top/%e5%87%a1%e4%ba%ba%e4%bf%ae%e4%bb%99%e4%b8%8e%e4%ba%a4%e6%98%93%e4%b9%8b%e8%b7%af%ef%bc%9a%e8%b0%a8%e5%b0%8f%e6%85%8e%e5%be%ae%ef%bc%8c%e5%b0%bd%e4%ba%ba%e4%ba%8b%e5%90%ac%e5%a4%a9%e5%91%bd/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Thu, 28 Aug 2025 09:55:25 +0000</pubDate>
				<category><![CDATA[推荐]]></category>
		<category><![CDATA[交易]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=839</guid>

					<description><![CDATA[引子：韩立的修仙启示 最近重温《凡人修仙传》，韩立缔结元婴的篇章令人感慨万千。一位灵根平凡、谨小慎微的修仙者，<div class="more-link">
				 <a href="https://www.zlhlab.top/%e5%87%a1%e4%ba%ba%e4%bf%ae%e4%bb%99%e4%b8%8e%e4%ba%a4%e6%98%93%e4%b9%8b%e8%b7%af%ef%bc%9a%e8%b0%a8%e5%b0%8f%e6%85%8e%e5%be%ae%ef%bc%8c%e5%b0%bd%e4%ba%ba%e4%ba%8b%e5%90%ac%e5%a4%a9%e5%91%bd/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">引子：韩立的修仙启示</h2>



<p>最近重温《凡人修仙传》，韩立缔结元婴的篇章令人感慨万千。一位灵根平凡、谨小慎微的修仙者，凭借坚定的道心和不懈的努力，终于踏上修仙巅峰。回望韩立的结婴之路，灵根、炼丹、法宝、符箓、资源、运气，缺一不可。无数修仙者中，能登顶者寥寥无几，韩立的成功离不开天时、地利、人和，更离不开他善于隐藏、把握时机的智慧和刻苦修炼的毅力。</p>



<p>大道是自己走出来的，但成败往往取决于内外因的交织。这与交易之路何其相似！</p>



<h2 class="wp-block-heading">交易之路：从偶然盈利到长期生存</h2>



<p>交易市场如修仙世界，短期盈利或许不难，但要实现持续的成功却需付出巨大努力。交易的成功离不开以下要素：</p>



<ul class="wp-block-list">
<li><strong>稳定的交易策略</strong>：通过实践打磨出可执行、可持续的交易体系。</li>



<li><strong>极致的风险管理</strong>：在市场波动中保持理性和纪律，控制每一笔交易的风险。</li>



<li><strong>情绪的磨砺</strong>：克服贪婪与恐惧，修炼一颗“交易道心”。</li>



<li><strong>持续的学习</strong>：洞悉市场逻辑，紧跟变化，保持竞争力。</li>
</ul>



<p>只有在这些方面下足功夫，才能在变幻莫测的市场中长期生存。</p>



<h2 class="wp-block-heading">个人经历：从迷茫到破局</h2>



<p>在经济下行、互联网寒冬和“35岁危机”的多重压力下，我终于完成了硕士论文，却面临长达两年的职业空窗期。这段时间，我尝试了A股、港股、美股、国内期货市场和外汇交易，学习了CFA一级课程，研究了文华财经、TBQuant、聚宽、QMT、MT4/MT5等平台，编写了数十个交易策略。然而，资源的有限与市场的无限让我深刻体会到个人精力的渺小。</p>



<p>曾几何时，听到新闻报道全国有1亿多人月收入不足1000元，我拿着2万元的月薪觉得不可思议。但当空有理想却换不来“馒头”时，我才明白自己也可能成为“可笑之人”。这让我理解了为何许多中年人会选择进入A股或沉迷赌博——当向上的通道被锁死，搏命似乎成了另一种出路。</p>



<h2 class="wp-block-heading">转机与感悟：回归本职与交易的平衡</h2>



<p>幸运的是，在储蓄几乎耗尽之际，我得到了现在公司的机会，找到了一份稳定的本职工作，解决了现金流的燃眉之急。稳定的收入让我无需通过频繁交易来谋生，从而能更专注于完善交易策略。最近，我完成了一次FTMO模拟账号挑战，收益率曲线颇为优美，这让我对再次启动实盘交易充满信心。</p>



<p>以下是我的最新FTMO模拟账号挑战结果：</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="913" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-27-15.21.07-1024x913.png" alt="" class="wp-image-840" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-27-15.21.07-1024x913.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-27-15.21.07-300x267.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-27-15.21.07-768x684.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-27-15.21.07.png 1324w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">凡人交易：与市场共舞，尽人事听天命</h2>



<p>“你我皆凡人”。交易之路是与人性、与市场的博弈。市场瞬息万变，我们只能不断适应、跟随。对于普通人而言，照顾好家庭已需耗费巨大心力，能否实现财富自由往往需要“尽人事，听天命”。</p>



<p>最后，我想与大家分享《天道》中的一首自嘲诗，愿我们都能在平凡中坚守，在市场中砥砺前行：</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>本是后山人，偶作前堂客。<br>醉舞经阁半卷书，坐井说天阔。<br>大志戏功名，海斗量福祸。<br>论到囊中羞涩时，怒指乾坤错。</p>
</blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>惠每数据中台项目</title>
		<link>https://www.zlhlab.top/%e6%83%a0%e6%af%8f%e6%95%b0%e6%8d%ae%e4%b8%ad%e5%8f%b0%e9%a1%b9%e7%9b%ae/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Wed, 20 Aug 2025 07:43:31 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[antd pro components]]></category>
		<category><![CDATA[react.js]]></category>
		<category><![CDATA[umi.js]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=777</guid>

					<description><![CDATA[惠每数据中台项目包含项目管理、数据对象的创建，任务管理和任务自动化分派、系统多用户多角色的权限控制，以及医生和<div class="more-link">
				 <a href="https://www.zlhlab.top/%e6%83%a0%e6%af%8f%e6%95%b0%e6%8d%ae%e4%b8%ad%e5%8f%b0%e9%a1%b9%e7%9b%ae/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>惠每数据中台项目包含项目管理、数据对象的创建，任务管理和任务自动化分派、系统多用户多角色的权限控制，以及医生和文献知识库的查询。实现多项目管理、数据库构建。</p>



<h2 class="wp-block-heading">项目架构</h2>



<p>项目前端采用react + umi.js v3版本，角色权限采用人人企业管理组件。</p>



<h2 class="wp-block-heading">项目UI</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.19.00-1024x577.png" alt="" class="wp-image-781" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.19.00-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.19.00-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.19.00-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.19.00-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.19.00-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="783" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.18.35-1024x577.png" alt="" class="wp-image-783" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.18.35-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.18.35-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.18.35-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.18.35-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.18.35-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" data-id="786" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.05-1024x576.png" alt="" class="wp-image-786" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.05-1024x576.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.05-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.05-768x432.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.05-1536x864.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.05-2048x1152.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="787" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.23-1024x577.png" alt="" class="wp-image-787" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.23-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.23-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.23-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.23-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.23-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="788" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.31-1024x577.png" alt="" class="wp-image-788" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.31-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.31-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.31-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.31-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.20.31-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="789" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.19-1024x577.png" alt="" class="wp-image-789" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.19-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.19-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.19-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.19-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.19-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="782" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.50-1024x577.png" alt="" class="wp-image-782" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.50-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.50-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.50-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.50-1536x866.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.50-2048x1155.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="790" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.38-1024x577.png" alt="" class="wp-image-790" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.38-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.38-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.38-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.38-1536x866.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.21.38-2048x1155.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="792" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.14-1024x577.png" alt="" class="wp-image-792" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.14-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.14-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.14-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.14-1536x866.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.14-2048x1155.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="793" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.26-1024x577.png" alt="" class="wp-image-793" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.26-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.26-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.26-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.26-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.50.26-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" data-id="794" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.51.53-1024x577.png" alt="" class="wp-image-794" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.51.53-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.51.53-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.51.53-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.51.53-1536x866.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.51.53-2048x1155.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.16-1024x577.png" alt="" class="wp-image-779" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.16-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.16-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.16-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.16-1536x866.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.16-2048x1155.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.33-1024x577.png" alt="" class="wp-image-780" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.33-1024x577.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.33-300x169.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.33-768x433.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.33-1536x865.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-06-10.17.33-2048x1153.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h2 class="wp-block-heading">相关链接</h2>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>umi.js v3: <a href="https://v3.umijs.org/">https://v3.umijs.org/</a></p>



<p>人人企业demo版本：<a href="https://demo.renren.io/security-enterprise/#/login">https://demo.renren.io/security-enterprise/#/login</a></p>
</div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI 工具生态解析：Dify、Coze、LangChain、LangSmith、Google ADK 与 n8n 的关系与概念</title>
		<link>https://www.zlhlab.top/ai-%e5%b7%a5%e5%85%b7%e7%94%9f%e6%80%81%e8%a7%a3%e6%9e%90%ef%bc%9adify%e3%80%81coze%e3%80%81langchain%e3%80%81langsmith%e3%80%81google-adk-%e4%b8%8e-n8n-%e7%9a%84%e5%85%b3%e7%b3%bb%e4%b8%8e%e6%a6%82/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Wed, 20 Aug 2025 07:33:36 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=830</guid>

					<description><![CDATA[随着大语言模型（LLM）和智能自动化技术的快速发展，开发者面临从低代码快速原型到高代码深度定制的多样化工具选择<div class="more-link">
				 <a href="https://www.zlhlab.top/ai-%e5%b7%a5%e5%85%b7%e7%94%9f%e6%80%81%e8%a7%a3%e6%9e%90%ef%bc%9adify%e3%80%81coze%e3%80%81langchain%e3%80%81langsmith%e3%80%81google-adk-%e4%b8%8e-n8n-%e7%9a%84%e5%85%b3%e7%b3%bb%e4%b8%8e%e6%a6%82/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<p>随着大语言模型（LLM）和智能自动化技术的快速发展，开发者面临从低代码快速原型到高代码深度定制的多样化工具选择。本文深入剖析六种主流 AI 及自动化工具——<strong>Dify</strong>、<strong>Coze</strong>、<strong>LangChain</strong>、<strong>LangSmith</strong>、<strong>Google Agent Development Kit (ADK)</strong> 和 <strong>n8n</strong>，从其功能定位、适用场景、生态关系及未来发展出发，为开发者和企业提供清晰的选型参考。</p>



<h2 class="wp-block-heading">1. 工具概述</h2>



<h3 class="wp-block-heading">1.1 Dify</h3>



<p><strong>Dify</strong> 是一款开源的大语言模型应用开发平台，融合了“后端即服务”（Backend as Service）和 LLMOps 理念，旨在降低 AI 应用开发的门槛。它通过可视化界面和拖拽式工作流设计，支持非技术人员快速构建 AI 应用，同时为开发者提供从原型到生产的全生命周期支持。核心功能包括：</p>



<ul class="wp-block-list">
<li><strong>可视化工作流</strong>：通过拖拽组件实现复杂任务编排，简化开发流程。</li>



<li><strong>RAG 引擎</strong>：内置检索增强生成（Retrieval-Augmented Generation）功能，支持企业知识库问答。</li>



<li><strong>多模型支持</strong>：兼容 OpenAI、阿里云通义千问、文心一言等数十种主流模型。</li>



<li><strong>企业级特性</strong>：提供多租户隔离、审计日志、性能监控，适合生产环境部署。</li>
</ul>



<p><strong>适用场景</strong>：快速构建企业级 AI 应用，如智能客服、知识库问答、自动化流程，特别适合需要本地部署或快速验证产品概念的团队。</p>



<h3 class="wp-block-heading">1.2 Coze</h3>



<p><strong>Coze</strong>（国内版称“扣子”）是由字节跳动推出的低代码 AI 智能体开发平台，专注于对话式 AI 应用和自动化任务。其设计理念是“人人都是 AI 开发者”，通过直观的图形化界面和丰富的插件生态降低技术门槛。核心功能包括：</p>



<ul class="wp-block-list">
<li><strong>插件生态</strong>：提供上千款工具插件，支持搜索、网页爬取、API 调用等。</li>



<li><strong>多平台发布</strong>：支持将智能体发布到抖音、飞书、公众号等平台。</li>



<li><strong>对话式交互</strong>：适合构建聊天机器人、自动化助手等场景。</li>



<li><strong>可视化工作流</strong>：通过拖拽方式配置复杂任务逻辑。</li>
</ul>



<p><strong>适用场景</strong>：C 端用户、小型团队或个人开发者，用于快速搭建对话机器人、社交媒体助手或轻量级自动化工具。</p>



<h3 class="wp-block-heading">1.3 LangChain</h3>



<p><strong>LangChain</strong> 是一个开源的 Python/TypeScript 框架，专注于构建基于语言模型的复杂应用程序。它通过模块化设计和链式调用，提供高度定制化的开发体验。核心组件包括：</p>



<ul class="wp-block-list">
<li><strong>模块化设计</strong>：包括 Models、Prompts、Memory、Chains、Agents 等，支持灵活组合。</li>



<li><strong>RAG 支持</strong>：便于集成外部数据源和知识库，增强模型上下文能力。</li>



<li><strong>工具集成</strong>：支持与数据库、API、文件系统等外部工具无缝交互。</li>



<li><strong>社区生态</strong>：拥有超过 10 万 GitHub Stars，社区活跃，扩展性强。</li>
</ul>



<p><strong>适用场景</strong>：需要深度定制的复杂 AI 应用，如多步骤任务链、数据分析助手、科研实验平台，适合有编程经验的开发者。</p>



<h3 class="wp-block-heading">1.4 LangSmith</h3>



<p><strong>LangSmith</strong> 是 LangChain 生态中的调试和监控工具，专注于优化 LLM 应用的开发和运维流程。它与 LangChain 紧密集成，提供了从开发到生产的可观测性支持。核心功能包括：</p>



<ul class="wp-block-list">
<li><strong>调试工具</strong>：支持可视化调试 Agent 和工作流，分析模型输入输出。</li>



<li><strong>性能监控</strong>：跟踪消息数量、Token 消耗、用户满意度等指标。</li>



<li><strong>日志分析</strong>：提供详细运行日志，帮助优化 Prompt 和工作流。</li>



<li><strong>协作支持</strong>：便于团队协作和持续改进。</li>
</ul>



<p><strong>适用场景</strong>：适用于需要精细化调试和性能优化的 LangChain 项目，特别是在生产环境中。</p>



<h3 class="wp-block-heading">1.5 Google Agent Development Kit (ADK)</h3>



<p><strong>Google Agent Development Kit (ADK)</strong> 是一个开源框架，于 2025 年 4 月在 Google Cloud NEXT 2025 发布，旨在简化多智能体系统的开发和部署。它强调模块化、灵活性和生产就绪，广泛应用于 Google 内部产品。核心功能包括：</p>



<ul class="wp-block-list">
<li><strong>多智能体架构</strong>：支持通过 LlmAgent、SequentialAgent、ParallelAgent 等构建复杂协作系统。</li>



<li><strong>模型无关性</strong>：支持 Google Gemini、Claude、Mistral 等多种模型，通过 LiteLLM 扩展兼容性。</li>



<li><strong>工具生态</strong>：提供预建工具、自定义函数和 OpenAPI 集成，支持与 Google Cloud 生态（如 Vertex AI）深度融合。</li>



<li><strong>A2A 协议</strong>：通过 Agent-to-Agent (A2A) 协议实现跨平台智能体协作。</li>



<li><strong>开发体验</strong>：内置 CLI（如 <code>adk web</code>、<code>adk run</code>）、Web UI 和评估框架，支持调试和优化。</li>



<li><strong>部署灵活性</strong>：支持本地调试和容器化部署（如 Cloud Run、Kubernetes、Vertex AI）。</li>
</ul>



<p><strong>适用场景</strong>：构建生产级多智能体系统，如自动化工作流、数据分析助手、客户服务机器人，适合 Google Cloud 生态用户或需要跨平台协作的开发者。</p>



<h3 class="wp-block-heading">1.6 n8n</h3>



<p><strong>n8n</strong> 是一个开源的工作流自动化工具，专注于通过节点式工作流实现系统集成和任务自动化。虽然其核心不是 AI 开发，但通过与 LLM 和 AI 工具的集成，n8n 在 AI 驱动的自动化场景中表现出色。核心功能包括：</p>



<ul class="wp-block-list">
<li><strong>节点式工作流</strong>：通过可视化节点连接数百种应用程序（如 Slack、Google Sheets、OpenAI），实现复杂任务自动化。</li>



<li><strong>AI 集成</strong>：支持与 OpenAI、Hugging Face 等模型集成，用于文本生成、数据处理等任务。</li>



<li><strong>灵活部署</strong>：支持云端、本地部署和 Docker，适合数据敏感场景。</li>



<li><strong>社区扩展</strong>：提供丰富的社区节点和自定义脚本支持，增强灵活性。</li>
</ul>



<p><strong>适用场景</strong>：跨系统集成和自动化任务，如数据管道、通知系统、AI 驱动的业务流程优化，适合需要连接多种工具的团队。</p>



<h2 class="wp-block-heading">2. 工具之间的关系</h2>



<h3 class="wp-block-heading">2.1 技术定位与层次</h3>



<ul class="wp-block-list">
<li><strong>Dify 和 Coze</strong>：定位于低代码/零代码平台，强调用户友好性和快速开发。Dify 更适合企业级场景，支持本地部署和 RAG 优化；Coze 聚焦对话式应用和字节生态整合，适合社交媒体场景。</li>



<li><strong>LangChain</strong>：高代码框架，面向开发者，提供模块化工具和深度定制能力，是许多低代码平台（如 Dify）的底层灵感来源。</li>



<li><strong>LangSmith</strong>：作为 LangChain 的配套工具，专注于调试和监控，增强 LangChain 应用的开发效率和生产稳定性。</li>



<li><strong>Google ADK</strong>：兼具高代码灵活性和生产级特性，与 LangChain 类似，但更强调多智能体协作和 Google 生态整合。</li>



<li><strong>n8n</strong>：定位于工作流自动化，侧重系统集成而非 AI 开发，但通过 AI 节点（如 OpenAI）与 Dify、Coze 等形成互补。</li>
</ul>



<h3 class="wp-block-heading">2.2 生态联系</h3>



<ul class="wp-block-list">
<li><strong>LangChain 生态</strong>：LangChain 是许多工具的底层框架。Dify 的工作流设计和 RAG 功能借鉴了 LangChain 的链式调用思想。LangSmith 直接服务于 LangChain 项目，提供调试和运维支持。</li>



<li><strong>Dify 与 Coze</strong>：两者均为低代码平台，Dify 强调企业级功能和开源部署，Coze 则依赖字节云服务，适合社交平台整合。</li>



<li><strong>Google ADK</strong>：与 LangChain 在功能上有重叠，但其 A2A 协议和 Google 生态整合（如 Gemini、Vertex AI）使其在多智能体协作中独具优势。</li>



<li><strong>n8n 的角色</strong>：n8n 通过 API 和节点与 Dify、Coze、LangChain、ADK 集成，充当自动化“胶水”，连接 AI 应用与外部系统（如 CRM、数据库）。例如，n8n 可调用 Dify 的 API 执行知识库查询，或触发 Coze 的智能体响应。</li>



<li><strong>跨工具协作</strong>：n8n 可作为工作流引擎，将 Dify/Coze 的 AI 能力与 LangChain/ADK 的复杂逻辑结合，LangSmith 则优化 LangChain/ADK 的性能。</li>
</ul>



<h3 class="wp-block-heading">2.3 竞争与互补</h3>



<ul class="wp-block-list">
<li><strong>竞争</strong>：
<ul class="wp-block-list">
<li><strong>Dify vs Coze</strong>：两者在低代码市场竞争，目标客户重叠（非技术用户和快速原型开发）。Dify 的开源和企业级特性适合数据敏感场景；Coze 的插件生态和字节整合适合 C 端和社交应用。</li>



<li><strong>LangChain vs ADK</strong>：两者均为高代码框架，竞争体现在开发方式选择。LangChain 社区生态更成熟，ADK 在 Google 生态和多智能体协作上有优势。</li>



<li><strong>Dify/Coze vs LangChain/ADK</strong>：低代码平台与高代码框架竞争在于易用性 vs 灵活性。</li>



<li><strong>n8n vs Dify/Coze</strong>：n8n 的自动化功能与 Dify/Coze 的工作流功能部分重叠，但 n8n 更专注于跨系统集成，而非 AI 应用开发。</li>
</ul>
</li>



<li><strong>互补</strong>：
<ul class="wp-block-list">
<li><strong>LangSmith 与 LangChain/ADK</strong>：LangSmith 增强 LangChain 和 ADK 的调试和运维能力，类似 Dify 的 LLMOps 功能。</li>



<li><strong>Dify/Coze 与 LangChain/ADK</strong>：低代码平台可基于 LangChain/ADK 构建，简化复杂功能的使用。</li>



<li><strong>n8n 与其他工具</strong>：n8n 作为自动化层，连接 Dify/Coze 的 AI 应用、LangChain/ADK 的智能体逻辑，以及外部系统，形成完整的业务流程。</li>



<li><strong>ADK 与 n8n</strong>：ADK 的多智能体系统可通过 n8n 的工作流触发或集成，增强自动化能力。</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">3. 选择建议</h2>



<p>选择合适的工具需根据团队技术能力、项目复杂度和业务场景：</p>



<ul class="wp-block-list">
<li><strong>初学者/非技术团队</strong>：
<ul class="wp-block-list">
<li><strong>Dify</strong>：适合需要本地部署或企业级功能的用户，快速构建知识库问答或自动化流程。</li>



<li><strong>Coze</strong>：适合社交媒体或轻量级对话机器人开发，插件生态丰富，发布便捷。</li>



<li><strong>n8n</strong>：适合需要跨系统自动化的团队，快速连接 AI 工具与外部服务。</li>
</ul>
</li>



<li><strong>专业开发者</strong>：
<ul class="wp-block-list">
<li><strong>LangChain</strong>：首选框架，适合需要深度定制的复杂 AI 应用，社区支持强大。</li>



<li><strong>Google ADK</strong>：适合 Google Cloud 用户或多智能体系统开发者，A2A 协议和 Vertex AI 集成是亮点。</li>
</ul>
</li>



<li><strong>运维优化</strong>：
<ul class="wp-block-list">
<li><strong>LangSmith</strong>：为 LangChain/ADK 项目提供调试和监控支持，适合生产环境优化。</li>
</ul>
</li>



<li><strong>自动化与集成</strong>：
<ul class="wp-block-list">
<li><strong>n8n</strong>：适合需要连接多种工具和系统的工作流场景，与 Dify/Coze/LangChain/ADK 形成互补。</li>
</ul>
</li>



<li><strong>混合场景</strong>：
<ul class="wp-block-list">
<li>用 Dify/Coze 快速验证原型，LangChain/ADK 进行深度定制，n8n 实现跨系统自动化，LangSmith 优化性能。</li>
</ul>
</li>



<li><strong>Google 生态用户</strong>：
<ul class="wp-block-list">
<li><strong>ADK</strong>：与 Gemini 模型、Vertex AI 深度整合，适合多智能体和云部署场景。</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">4. 未来展望</h2>



<p>随着 AI 和自动化技术的融合，低代码平台（如 Dify、Coze）、高代码框架（如 LangChain、ADK）和自动化工具（如 n8n）将进一步整合，兼顾易用性、灵活性和系统互联互通。LangSmith 将推动 LLM 应用的运维标准化，ADK 的 A2A 协议可能成为多智能体协作标准，n8n 则将继续扩展其节点生态，连接更多 AI 和非 AI 系统。开发者需关注社区活跃度、技术更新和行业适配性，以选择最契合的工具组合。</p>



<h2 class="wp-block-heading">5. 结论</h2>



<p>Dify、Coze、LangChain、LangSmith、Google ADK 和 n8n 共同构成了 AI 应用开发和自动化的多层次生态。Dify 和 Coze 降低 AI 开发门槛，适合快速原型；LangChain 和 ADK 提供深度定制，适合复杂应用；LangSmith 优化运维；n8n 连接 AI 与外部系统，增强自动化能力。理解它们的功能与关系，有助于开发者高效构建 AI 驱动的智能化解决方案。</p>



<p><strong>参考资料</strong>：</p>



<ul class="wp-block-list">
<li>Dify 官网：<a href="https://dify.ai/">https://dify.ai</a></li>



<li>Coze 官网：<a href="https://www.coze.cn/">https://www.coze.cn</a></li>



<li>LangChain 文档：<a href="https://python.langchain.com/">https://python.langchain.com</a></li>



<li>LangSmith 文档：<a href="https://docs.smith.langchain.com/">https://docs.smith.langchain.com</a></li>



<li>Google ADK 文档：<a href="https://google.github.io/adk">https://google.github.io/adk</a></li>



<li>n8n 官网：<a href="https://n8n.io/">https://n8n.io</a></li>



<li>Google Developers Blog：<a href="https://developers.googleblog.com/">https://developers.googleblog.com</a></li>



<li>GitHub ADK Python：<a href="https://github.com/google/adk-python">https://github.com/google/adk-python</a></li>



<li>Google Cloud Blog：<a href="https://cloud.google.com/">https://cloud.google.com</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>使用 Next.js 建站：GitHub 代码管理、Vercel CI/CD 部署及腾讯云域名关联实现国内访问</title>
		<link>https://www.zlhlab.top/%e4%bd%bf%e7%94%a8-next-js-%e5%bb%ba%e7%ab%99%ef%bc%9agithub-%e4%bb%a3%e7%a0%81%e7%ae%a1%e7%90%86%e3%80%81vercel-ci-cd-%e9%83%a8%e7%bd%b2%e5%8f%8a%e8%85%be%e8%ae%af%e4%ba%91%e5%9f%9f%e5%90%8d%e5%85%b3/</link>
		
		<dc:creator><![CDATA[萧邦]]></dc:creator>
		<pubDate>Fri, 15 Aug 2025 03:43:56 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[next.js]]></category>
		<category><![CDATA[vercel]]></category>
		<guid isPermaLink="false">https://www.zlhlab.top/?p=818</guid>

					<description><![CDATA[引言 在为公司开发官网时，传统国内建站方式通常涉及购买云服务器、采用 WordPress 或自研系统，流程复杂<div class="more-link">
				 <a href="https://www.zlhlab.top/%e4%bd%bf%e7%94%a8-next-js-%e5%bb%ba%e7%ab%99%ef%bc%9agithub-%e4%bb%a3%e7%a0%81%e7%ae%a1%e7%90%86%e3%80%81vercel-ci-cd-%e9%83%a8%e7%bd%b2%e5%8f%8a%e8%85%be%e8%ae%af%e4%ba%91%e5%9f%9f%e5%90%8d%e5%85%b3/" class="link-btn theme-btn"><span>Read More </span> <i class="fa fa-caret-right"></i></a>
			</div>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">引言</h2>



<p>在为公司开发官网时，传统国内建站方式通常涉及购买云服务器、采用 WordPress 或自研系统，流程复杂且耗时。相比之下，结合 Next.js、GitHub 和 Vercel 提供了一套高效、免费的解决方案：Next.js 提供现代化 Web 开发体验，GitHub 实现代码管理，Vercel 提供无缝 CI/CD 部署，而腾讯云域名配置则优化国内访问速度并满足合规需求。</p>



<p>本流程的优势在于：</p>



<ul class="wp-block-list">
<li><strong>Next.js</strong>：支持服务器端渲染（SSR）、静态生成（SSG）和 API 路由，兼顾性能与 SEO。</li>



<li><strong>GitHub</strong>：免费代码托管，版本控制简单。</li>



<li><strong>Vercel</strong>：Next.js 官方部署平台，支持自动部署和全球 CDN。</li>



<li><strong>腾讯云域名</strong>：支持 ICP 备案，加速国内访问。</li>
</ul>



<p>本文总结了从零搭建 Next.js 官网、通过 GitHub 管理代码、使用 Vercel 实现 CI/CD，并关联腾讯云域名以优化国内访问的完整流程。内容基于官方文档和实践经验，适合有 React 基础的开发者，预计耗时 1-2 小时。以下步骤包含详细命令和界面描述，确保清晰易懂。</p>



<h2 class="wp-block-heading">步骤 1: 创建 Next.js 项目</h2>



<p>确保本地安装 Node.js（建议版本 18 或以上）。使用 <code>create-next-app</code> 快速创建项目。</p>



<ol class="wp-block-list">
<li><strong>初始化项目</strong>：
<ul class="wp-block-list">
<li>在终端运行：<code>npx create-next-app@latest my-next-app</code></li>



<li>按提示选择：推荐使用 App Router，TypeScript（可选）、ESLint 和 Tailwind CSS。生成的项目包含仪表板模板，适合快速开发。</li>



<li>项目结构：<code>my-next-app/ ├── app/ ├── public/ ├── next.config.js ├── package.json └── README.md</code></li>
</ul>
</li>



<li><strong>启动开发服务器</strong>：
<ul class="wp-block-list">
<li>进入目录：<code>cd my-next-app</code></li>



<li>运行：<code>npm run dev</code></li>



<li>打开 <code>http://localhost:3000</code>，查看 Next.js 默认页面。</li>
</ul>
</li>
</ol>



<p><strong>图 1: Next.js 项目创建终端</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="251" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.33.02-1024x251.png" alt="" class="wp-image-823" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.33.02-1024x251.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.33.02-300x74.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.33.02-768x189.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.33.02.png 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>初学者可参考 Next.js 官方文档的 React 基础课程，深入了解 App Router。</p>



<h2 class="wp-block-heading">步骤 2: 代码托管到 GitHub</h2>



<p>GitHub 提供可靠的代码版本控制和协作平台。我们将本地项目推送到 GitHub 仓库。</p>



<ol class="wp-block-list">
<li><strong>初始化本地 Git 仓库</strong>：
<ul class="wp-block-list">
<li>在项目根目录运行：<code>git init git add . git commit -m "Initial commit"</code></li>
</ul>
</li>



<li><strong>创建 GitHub 仓库</strong>：
<ul class="wp-block-list">
<li>登录 GitHub，点击右上角 “+” &gt; “New repository”。</li>



<li>输入仓库名称（如 <code>my-next-app</code>），选择公有（便于 Vercel 集成）或私有，添加描述，可选添加 README 或 <code>.gitignore</code>。</li>



<li>点击 “Create repository”。</li>
</ul>
</li>



<li><strong>推送代码</strong>：
<ul class="wp-block-list">
<li>添加远程仓库：<code>git remote add origin https://github.com/your-username/my-next-app.git</code></li>



<li>推送：<code>git push -u origin main</code></li>
</ul>
</li>
</ol>



<p>此步骤确保代码安全备份，并为 CI/CD 部署做准备。</p>



<h2 class="wp-block-heading">步骤 3: 使用 Vercel 实现 CI/CD 部署</h2>



<p>Vercel 是 Next.js 的首选部署平台，支持从 GitHub 自动构建和部署，简化 CI/CD 流程。</p>



<ol class="wp-block-list">
<li><strong>连接 GitHub 与 Vercel</strong>：
<ul class="wp-block-list">
<li>注册/登录 Vercel（免费账户即可）。</li>



<li>在 Vercel 仪表板点击 “New Project”。</li>



<li>选择 GitHub，授权访问，选择 <code>my-next-app</code> 仓库，点击 “Import”。</li>
</ul>
</li>



<li><strong>配置并部署</strong>：
<ul class="wp-block-list">
<li>保留默认设置（框架自动识别为 Next.js）。</li>



<li>点击 “Deploy”，Vercel 将自动构建并部署项目。</li>



<li>部署完成后，获得类似 <code>my-next-app.vercel.app</code> 的默认域名。</li>
</ul>
</li>



<li><strong>启用 CI/CD</strong>：
<ul class="wp-block-list">
<li>推送至 <code>main</code> 分支触发生产部署，其他分支触发预览部署。</li>



<li>可在 Vercel 设置中调整生产分支（默认 <code>main</code>）。</li>



<li>私有仓库需确保提交者有 Vercel 项目权限。</li>
</ul>
</li>
</ol>



<p><strong>图 3: Vercel 部署仪表板</strong><br>（描述：Vercel 页面显示 “Deployments” 标签，列出构建日志和预览 URL，绿色状态表示部署成功。）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="300" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.37.48-1024x300.png" alt="" class="wp-image-825" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.37.48-1024x300.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.37.48-300x88.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.37.48-768x225.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.37.48-1536x450.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.37.48-2048x600.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>测试 CI/CD：修改本地代码，推送至 GitHub，Vercel 将自动重新部署。</p>



<h2 class="wp-block-heading">步骤 4: 配置腾讯云域名以优化国内访问</h2>



<p>为提升品牌形象和国内访问速度，我们通过 Vercel 添加子域名（如 <code>blog.example.com</code>），并结合腾讯云 DNS 解析。注意：中国用户需完成域名 ICP 备案（约 20 天），否则可能无法访问。备案可通过腾讯云控制台申请。</p>



<ol class="wp-block-list">
<li><strong>在 Vercel 配置子域名</strong>：
<ul class="wp-block-list">
<li>在 Vercel 项目仪表板，进入 “Settings” &gt; “Domains”。</li>



<li>输入子域名（如 <code>blog.example.com</code>），点击 “Add”。</li>



<li>Vercel 提供 CNAME 记录（如 <code>cname.vercel-dns.com</code>），并自动配置 SSL。</li>
</ul>
</li>
</ol>



<p><strong>图 4: Vercel 域名配置界面</strong><br>（描述：Vercel 设置页面显示 “Add Domain” 输入框和 DNS 记录提示，包含 CNAME 值。）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="253" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.34.41-1024x253.png" alt="" class="wp-image-824" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.34.41-1024x253.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.34.41-300x74.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.34.41-768x190.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.34.41-1536x379.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-11.34.41.png 1846w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="2" class="wp-block-list">
<li><strong>在腾讯云设置 DNS</strong>：
<ul class="wp-block-list">
<li>登录腾讯云控制台，进入 “域名管理” &gt; “DNS 解析”。</li>



<li>选择已备案域名（如 <code>example.com</code>）。</li>



<li>添加记录：
<ul class="wp-block-list">
<li>类型：CNAME</li>



<li>主机记录：<code>blog</code></li>



<li>记录值：<code>cname.vercel-dns.com</code>（从 Vercel 复制）</li>



<li>TTL：600 秒</li>
</ul>
</li>



<li>保存后，等待 DNS 传播（几分钟至数小时）。</li>



<li>验证：运行 <code>dig blog.example.com</code>，确认指向 Vercel IP。</li>
</ul>
</li>
</ol>



<p><strong>图 5: 腾讯云 DNS 配置界面</strong><br>（描述：腾讯云控制台显示 “添加记录” 按钮，填写 CNAME 类型、主机记录和值，蓝色主题。）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="85" src="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-12.02.14-1024x85.png" alt="" class="wp-image-828" srcset="https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-12.02.14-1024x85.png 1024w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-12.02.14-300x25.png 300w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-12.02.14-768x64.png 768w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-12.02.14-1536x128.png 1536w, https://www.zlhlab.top/wp-content/uploads/2025/08/截屏2025-08-15-12.02.14-2048x171.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="3" class="wp-block-list">
<li><strong>优化国内访问</strong>：
<ul class="wp-block-list">
<li>备案完成后，国内用户可直接访问子域名。</li>



<li>Vercel 的全球 CDN 结合腾讯云域名解析可降低延迟。</li>



<li>若访问受限，检查备案状态或启用腾讯云 CDN 加速。</li>
</ul>
</li>
</ol>



<p>此配置兼顾合规性和性能：Vercel 负责部署，腾讯云 提供域名解析和备案支持。</p>



<h2 class="wp-block-heading">结论</h2>



<p>通过 Next.js、GitHub、Vercel 和腾讯云的组合，您可以快速构建一个高性能、易维护的企业官网。相比传统 WordPress 或自研建站方式，此流程简化了开发和部署，特别适合需要快速上线和国内优化的项目。遇到问题可参考 Next.js、Vercel 或腾讯云官方文档。</p>



<p>如需扩展功能（如环境变量、Edge Functions），请查阅 Vercel 文档。祝您的官网开发顺利！</p>



<h2 class="wp-block-heading">相关链接</h2>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>vercel官网：<a href="https://vercel.com/home">https://vercel.com/home</a></p>



<p>github官网：<a href="https://github.com">https://github.com</a></p>



<p>聚信官网：<a href="https://juxin.www.zlhlab.top">https://juxin.www.zlhlab.top</a></p>
</div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
