Yarn Workspace 基础

使用 Yarn Workspace 的原因

多项目,需要共享代码

基础目录

test
  packages
    a
      index.js
      package.json
    b
      index.js
      package.json
  package.json

创建工作区

npm init -w packages/a -y
npm init -w packages/b -y
// 或者合并为一条
npm init -w packages/a -w packages/b -y

根目录 package.json

{
  "name": "test",
  "private": true,
  "workspaces": ["packages/*"]
}

工作区 package.json

{
  "name": "@test/a", // 命名规则 @[root-name]/[package-name]
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}

packages/a/index.js

const { b } = require('@test/b')
console.log('a', b())

packages/b/index.js

exports.b = () => {
    return 'value:b;'
}
console.log('b');

关联

在根目录或工作区执行 yarn 指令,即可将本地模块软链接到根目录的 node_modules

共享依赖

// 根 package.json 增加 devDependencies
{
  "name": "test",
  "private": true,
  "workspaces": ["packages/*"],
  "devDependencies": {
        "react": "^18.1.0"
  }
}
// 工作区 package.json 增加 peerDependencies
{
  "name": "@test/a",
  "version": "1.0.0",
  "main": "index.js",
  "peerDependencies": {
    "react": "*"
  }
}

参考链接

参考1
参考2

posted @ 2024-03-18 11:39  _NKi  阅读(15)  评论(0编辑  收藏  举报