腾讯无界微前端源码分析

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命名一键启动所有例子:

相关推荐
程序员爱钓鱼38 分钟前
Rust 变量与不可变性:为什么默认不能修改变量?
前端·后端·rust
随风一样自由1 小时前
【前端工程化】前端工程化解耦实践:从问题分析到架构重构
前端·重构·架构
vortex51 小时前
Web 渗透测试:未授权与越权漏洞全流程挖掘思路
前端
我有满天星辰2 小时前
【前端模块化】前端模块化演进之路:从脚本堆砌到标准统一
前端
我有满天星辰2 小时前
Vue 3 响应式双雄:ref 与 reactive 完全指南
前端·javascript·vue.js
随风一样自由10 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
IMPYLH11 小时前
HTML 的 <data> 元素
前端·html
YHHLAI11 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
kyriewen13 小时前
我扒了 GPT-5.6 的全部编程跑分——有一项 OpenAI 没敢放出来
前端·gpt·ai编程
前端H14 小时前
微前端 v3 架构升级:从加载隔离到状态协同
前端·架构·状态模式