腾讯无界微前端源码分析

1.环境准备,node,pnpm,lerna,webpack,webpack-cli

node版本最好使用14的,相关的pnpm,lerna,webpack,webpack-cli需要适配node14,不然无法启动项目;

lerna.json配置文件中规定了"npmClient": "pnpm",pnmp的配置文件pnpm-workspace.yaml,因此本地环境必须先安装pnpm;

2.知识储备

https://pnpm.io/zh/ pnmp中文网,

https://lerna.nodejs.cn/ lerna 中文网,

https://webpack.docschina.org/ webpack 中文网

3.目录结构分析

docs:文档,使用vitepress技术构建

examples:例子

packages:核心源码,打包输出给例子用,无界微前端核心源码;

scripts:每个脚本的主要作用(local-vue2-build.sh举例:定位到项目根目录, 构建 vue2 示例(examples/vue2), 清理旧构建产物, 移动新构建产物到 demo-vue2 目录, 复制 index.html → 404.html(SPA 回退支持), Git 提交并推送到远程(自动部署))

4.启动项目步骤

4.1在项目根目录下运行命令:pnpm i ,pnpm会根据配置文件pnpm-workspace.yaml,查找相关目录下的所有package.json安装相关依赖,生成node_modules文件;

4.2源码构建组件输出

因为例子里面的examples\main-vue\package.json ==> "wujie": "workspace:^1.0.29",里面的工作空间协议 (workspace:)https://pnpm.io/zh/workspaces,规定了从本地引用wujie\wujie-vue2\wujie-vue3,所以先在packages包下面执行构建命令,构建到相关的lib下面

4.3启动例子

可以单独启动:

也可以用lerna命名一键启动所有例子:

相关推荐
兰亭妙微UI设计公司9 分钟前
兰亭妙微ui设计公司分享:B端组件命名如何支持团队协作
前端·javascript·vue.js
云和数据.ChenGuang33 分钟前
光哥说Python 异常深度解析:从异常模型到工程化实践
java·前端·人工智能·python·langchain
小大宇1 小时前
Vue知识点-ElementPlus-03提示框+询问+通知
前端·javascript·vue.js
步行cgn2 小时前
Axios 请求成功但页面不显示:两个前端错误的分析与修正
前端
时间的情敌2 小时前
WebGIS + OpenLayers + GeoServer + PostGIS #量算 #点聚合
前端·geoserver·openlayers
不可能片场3 小时前
Electron 发布 cookie 库先查明文再写解密
前端·electron
郭小李3 小时前
springmvc 拦截器
java·开发语言·前端
web打印社区3 小时前
Chrome-kiosk-printing能上生产吗
开发语言·前端·javascript·chrome·websocket
白帽攻防录3 小时前
某pc客户端app从xss到rce实战案例
前端·网络安全·黑客·xss·rce·src漏洞·app漏洞
志尊宝3 小时前
AI原生前端开发(041):AI辅助的状态管理(Zustand/Pinia)
前端·javascript·ai-native