Lerna+ yarn workspace + rollup的参考链接

257 阅读1分钟

1、lerna + yarn workspaces 的基本使用

2、基于 Lerna 管理 packages 的 Monorepo 项目最佳实践

3、使用Lerna & Yarn Workspaces 构建mono-repo项目

4、lerna管理package

5、Monorepo 項目管理方案:lerna + yarn workspace / pnpm

6、pnpm + workspace + changesets 构建你的 monorepo 工程

7、借助rollup构建npm包最佳实践

8、前端工程化之Rollup构建工具

9、Rollup打包工具的使用(超详细,超基础,附代码截图超简单)

10、手把手教你使用Rollup打包并发布自己的工具库

11、实用程序包utils - 基于Rollup打包输出各模块文件(二)

12、使用rollup按需打包一个组件库

13、vue3源码分析——rollup打包monorepo,打包一个或多个

14、基于 lerna 实现 Monorepo 项目管理

15、Monorepo实战

16、Monorepo——探秘源码管理新姿势!

1. nohoist

monorepo 中所有的依赖都会储存在根目录下的 node_modules 中:/monorepo/node_modules

但某些情况下,我们可能需要同一 package 的不同版本。例如:一个 react 项目较老,使用 bootstrap 4。而另一个在开发中的新项目决定使用 bootstrap 5。

此时我们需要修改根目录下的 package.json 文件

{
  "name": "monorepo",
  "version": "1.0.0",
  "license": "MIT",
  "private": true,
  "workspaces": {
    "packages": [
      "packages/*"
    ],
    //就是下面这个
    "nohoist": [
      "**/bootstrap"
    ]
  }
}

可以看到,我们的 workspaces 新增了 nohoist 属性,我们可以在这里添加不需要共享的 packages 的名称。

报错 yarn/pnpm/npm : 无法加载文件 C:\Program Files\nodejs\yarn.ps1,无法加载文件 D:\nvm\yarn.ps1,因为在此系统上禁止运行脚本。

参考链接