郑州豆芽网站建设,网站数据库一般多大,介绍个人网站的ppt怎么做,做图标的网站Lerna Lerna是一个优化基于gitnpm的多pagkage项目的管理工具
解决的痛点 痛点一:重复操作 多Package本地link多Package依赖安装多Package单元测试多Package代码提交多Package代码发布 痛点二:版本一致性 发布时版本一 致性发布后相互依赖版本升级 package越多#xff0c;管…Lerna Lerna是一个优化基于gitnpm的多pagkage项目的管理工具
解决的痛点 痛点一:重复操作 多Package本地link多Package依赖安装多Package单元测试多Package代码提交多Package代码发布 痛点二:版本一致性 发布时版本一 致性发布后相互依赖版本升级 package越多管理复杂度越高 优势 大幅减少重复操作提升操作的标准化
*lerna开发脚手架流程 lerna命令语法文档 #mermaid-svg-chUh2fhdwcIPaTbN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-chUh2fhdwcIPaTbN .error-icon{fill:#552222;}#mermaid-svg-chUh2fhdwcIPaTbN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-chUh2fhdwcIPaTbN .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-chUh2fhdwcIPaTbN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-chUh2fhdwcIPaTbN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-chUh2fhdwcIPaTbN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-chUh2fhdwcIPaTbN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-chUh2fhdwcIPaTbN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-chUh2fhdwcIPaTbN .marker.cross{stroke:#333333;}#mermaid-svg-chUh2fhdwcIPaTbN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-chUh2fhdwcIPaTbN .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-chUh2fhdwcIPaTbN .cluster-label text{fill:#333;}#mermaid-svg-chUh2fhdwcIPaTbN .cluster-label span{color:#333;}#mermaid-svg-chUh2fhdwcIPaTbN .label text,#mermaid-svg-chUh2fhdwcIPaTbN span{fill:#333;color:#333;}#mermaid-svg-chUh2fhdwcIPaTbN .node rect,#mermaid-svg-chUh2fhdwcIPaTbN .node circle,#mermaid-svg-chUh2fhdwcIPaTbN .node ellipse,#mermaid-svg-chUh2fhdwcIPaTbN .node polygon,#mermaid-svg-chUh2fhdwcIPaTbN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-chUh2fhdwcIPaTbN .node .label{text-align:center;}#mermaid-svg-chUh2fhdwcIPaTbN .node.clickable{cursor:pointer;}#mermaid-svg-chUh2fhdwcIPaTbN .arrowheadPath{fill:#333333;}#mermaid-svg-chUh2fhdwcIPaTbN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-chUh2fhdwcIPaTbN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-chUh2fhdwcIPaTbN .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-chUh2fhdwcIPaTbN .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-chUh2fhdwcIPaTbN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-chUh2fhdwcIPaTbN .cluster text{fill:#333;}#mermaid-svg-chUh2fhdwcIPaTbN .cluster span{color:#333;}#mermaid-svg-chUh2fhdwcIPaTbN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-chUh2fhdwcIPaTbN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1.脚手架项目初始化 2.创建package 3.脚手架开发和测试 4.脚手架发布上线 lerna init 安装lerna 初始化npm lerna link 连接依赖 lerna add 安装依赖 lerna create 创建Package lerna bootstrap 重装依赖 lerna clean 清空依赖 lerna run 执行npm命令 lerna exec 执行shell脚本 lerna publish 项目发布 lerna diff 查看diff lerna changed 查看上版本以来的所有变更 lerna version 进行 bump version 脚手架项目初始化 npm init -y
npm i -g lerna
lerna init创建package lerna create core # 输入命令后会让填写package name请不要填写成默认的core为name可以写成项目名/core之后一路回车
lerna create utils # 步骤和上一条命令一样# 在npm上创建组织组织名为上两条命令的后面的项目名
# 点击npm头像点击Add Organization点击输入项目名点击create点击跳过。组织创建完毕。lerna add 依赖名 # 为每个packages安装依赖
lerna add 依赖名 路径名[packages/core/] # 为单个packages安装依赖lerna link
# 直接执行lerna link是无效的
# 以将utils目录下的lib/utils.js改成lib/index.js
# utils目录下的package.json的main: lib/utils.js改成main: lib/index.js
# 在core目录下的package.json中写入dependencies: {pale-cli-dev/utils: ^1.0.0}
# 之后再执行lerna link就会发现在core目录下多了一个node_modules目录就是utils的软连接脚手架开发和测试 lerna exec -- rm -rf node_modules/
# 删除packages下的所有node_modules而不是根目录下的node_modules
lerna exec --scope 包名[pale-cli-dev/core] -- rm -rf node_modules.
# 删除packages下core中的node_moduleslerna run 脚本名(package.json中script中的属性) # 执行每个packages的脚本命令
lerna run --scope 包名[pale-cli-dev/core] 脚本名 # 执行对应包名下的脚本命令lerna clean
# 清空添加的依赖 lerna clean只能去除掉packages下的node_modules但是不会去除package.json中写入的dependencieslerna bootstrap
# 重装依赖 也可以重装链接link 但是需要在lerna.json中设置useWorkspaces: false不然会显示lerna info bootstrap root only而不会进入packages中脚手架发布上线 lerna version # 升级版本 需要将代码commite仓库后才能运行lerna changed # 自上一个版本以来 哪些packages进行了变更lerna diff # lerna publish # 发布项目 注意在第二条创建package中需要进行组织的创建关于lerna publish的一些报错 lerna ERR! E401 [UNAUTHORIZED] Login first需要将npm设置成原本的镜像npm config set registry https://registry.npmjs.orglerna ERR! E426 426 Upgrade Required - PUT http://registry.npmjs.org/pale-cli-dev%2futils 设置的镜像不正确是https而不是http最好不要修改版本号因为虽然npm没有发布成功但是github仓库会有不同版本的tag如果版本相同也不会发布成功如果项目中没有修改内容和上次版本一样也不会发布成功