yarn workspaces基本试用
  TEZNKK3IfmPf 2023年11月14日 24 0

初始化项目

yarn init -y

添加workspaces 支持

修改package.json

{
"name": "second",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private":true,
"workspaces":["common","server"]
}

创建common && server 模块

  • common
yarn init -y
├── index.js
└── package.json
index.js
module.exports={
name:"dalong-common",
type:"common"
}
  • server 调用common
yarn init -y
├── index.js
└── package.json
package.json
{
"name": "server",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"common": "1.0.0"
}
}
index.js
const common =require("common");
console.log(common);

安装模块

yarn install 

效果
yarn workspaces基本试用

代码调用测试

node server
{ name: 'dalong-common', type: 'common' }

lerna 格式支持

  • 项目结构
├── package.json
├── packages
│ ├── common
│ │ ├── index.js
│ │ └── package.json
│ └── server
│ ├── index.js
│ └── package.json
└── yarn.lock
主要是 package.json

{
"name": "second",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private":true,
"workspaces":[
"packages/*"
]
}
以及packages 文件夹,其他地方不变
yarn install && node  packages/server

几个问题

  • 包版本的问题
比如我的项目comon 默认是1.0.0 但是如果我server 引用了1.1.0 ,但是因为本地是没有的,
会使用官方仓库的,这个实际上,在使用中还是要确定好版本,同时还是需要私服进行归档
进行历史版本的管理,确定好包的名称,使用私服格式

说明

版本管理本来就是比较复杂的事情,类似yarn 的有lerna 同时又一个概念monorepo,
bable  react 就是使用类似的方式进行官方组件的维护的,还是不错的,减少了包的问题
但是也有缺点,就是依赖过大,总的来说yarn 还是比较简单的,lerna 功能比较多,但是
实际上内部团队用的可能没有那么多,同时比较好的地方是三方以及本地依赖统一一个地方,依赖包
不用必须提交代码仓库
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
TEZNKK3IfmPf