Umi 实现微前端
建议阅读 Umi 微前端,了解 微前端 的基本使用 介绍 Lerna 是一个快速、领先的构建系统,用于管理和发布来自同一源码仓库的多个 JavaScript/TypeScript 软件包 Umi 企业级前端开发框架,它提供了一套完整的 Web 应用开发解决方案,包括路由、状态管理、数据请求、页面布局、主题定制等功能 项目地址实践包版本 node: 18.20.7 npm: 10.8.2 lerna: 8.1.8 umi: 4.4.0 项目目录12345678910111213141516171819├── 根目录 |── packages # 项目目录, 名称要跟 package.json 中 workspaces 以及 lerna.json 中 packages 一致 |── app # 主应用app |── src |── .umi # 动态生成的文件夹 |── .env #...
上传 npm 包
需要 npm 账号 注册 npm 账号 常用 npm 命令 12345678910111213# 登录 npmnpm login# 发布 npm 包npm publish# 撤销发布整个包npm unpublish demo1 --force# 撤销发布指定版本npm unpublish demo1@1.0.0 --force# 撤销发布提醒npm deprecate demo1 "this project is deprecated" 手动上传 npm 包 使用 npm init 初始化项目 在 package.json 中添加发布配置,使包公开,私有包需要付费 123"publishConfig": { "access": "public"} 完整 package.json 1234567891011121314{ "name": "@zxiaosi/demo1", "version":...
Monorepo 管理工具
Lerna 一个快速、领先的构建系统,用于管理和发布来 自同一源码仓库的多个 JavaScript/TypeScript 软件包。 常见命令 命令 描述 npm install -g lerna 全局安装 npx lerna init 初始化一个 lerna 项目 npx lerna clean 删除各个包下的 node_modules (常用) npx lerna bootstrap 安装依赖 (v7之后被移除) npx lerna link 链接互相引用的库 (v7之后被移除) npx lerna list [–scope=] [–exclude=] 列出本地软件包 npx lerna add [package] [–scope=] [–exclude=] 在所有包中添加依赖 npx lerna run [script] [–scope=] [–exclude=] 在每个工作区包中按拓扑顺序运行 npm script npx lerna exec...
Whatsapp 浏览器插件
免责声明: 本项目仅供学习交流使用,不得用于商业用途,如有侵权请联系删除 项目地址项目介绍项目目录12345678910111213141516171819202122⊢ dist # 打包后的文件 [插件文件]⊢ public # 静态资源文件 ⨽ images # 图片资源 ⨽ manifest.json # 插件配置文件 [重要] ⨽ inject.js # 注入脚本 [inject-script.js]⊢ src # 源码文件 ⨽ apis # 接口请求 ⨽ background # 后台脚本 [background-script.js] ⨽ init.ts # 后台脚本入口 ⨽...
Promise、Async、Await
Event Loop 这个网站很好用 JavaScript Visualizer 9000 惊艳!可视化的 js:动态图演示-事件循环 Event Loop 示例图 Promise概念 new Promise((resolve, reject) => {}) 里面的函数是同步(立刻)执行,then/catch/finally里面的函数是异步(进入微任务队列)执行 微任务队列:Promise.then/catch/finally、MutationObserver、process.nextTick、Object.observe 宏任务队列:setTimeout、setInterval、setImmediate、requestAnimationFrame、I/O、UI rendering 微任务队列优先级高于宏任务队列。在每一次事件循环中,只要调用栈为空,就会先执行微任务队列中的任务,直到微任务队列为空,再执行宏任务队列中的任务 示例 112345678910111213141516console.log(1);setTimeout(()...