美文网首页
Lerna 教程

Lerna 教程

作者: nucky_lee | 来源:发表于2022-05-16 16:38 被阅读0次

一、什么是 lerna?

多包管理工具,方便我们在一个项目中管理多个 npm 包。它能够在发包时统一每个包的版本号,解决多包项目中每次发包都要手动修改各个包的版本号并单独发布的烦恼。

二、环境搭建

打开终端安装 lerna 环境

npm i lerna -g

三、使用

初始化项目

找一个空文件夹执行 lerna init 初始化项目。

初始化后的目录结构如下所示

├── lerna.json // lerna 的相关配置

├── package.json

└── packages // 约定了该文件夹下存放多个 npm 包。

创建项目包

通过命令行创建项目

lerna create moduleA

lerna create moduleB

本地包相互引用

lerna link

j假设moduleA依赖moduleB,现在我们在 moduleA 包下增加个依赖。

packages/moduleA/package.json

{

  ...

  "dependencies":  {

  "moduleB":  "^1.0.0"

  },

  ...

}

在终端执行
lerna link

会在包中帮你安装moduleB依赖。

添加公共依赖

假设 moduleA 和 moduleB 都依赖 lodash

lerna add lodash

添加单独依赖

l 假设moduleA 自己依赖 jquery,moduleB 自己依赖 zepto

lerna add jquery --scope=@fengyinchao/modulea

lerna add zepto --scope=@fengyinchao/moduleb

卸载包

l 给 moduleA 移除一个依赖 husky

lerna exec --scope=@fengyinchao/modulea npm uninstall husky

重新安装依赖

lerna bootstrap

这样会帮我们安装package.json里的dependencies依赖项

抽离公共模块

上面 moduleA 和 moduleB 都依赖了 lodash,且在各自 package 下的node_modules 里都有副本,这其实很浪费空间,可以使用 --hoist

lerna bootstrap --hoist

这会将 packages 里重复的依赖提取到最外层的 node_modules 里,同时最外层的 package.json 也不会更新 dependency 信息,所以不建议将公用依赖写到最外层的package.json里,而是重复写到每个子package.json 里,然后用 --hoist 提取出来

更新公共依赖

假设要升级 moduleA 和 moduleB 都依赖的 lodash 版本,不必依次到各子package下升级,可以借助 lerna-update-wizard 这个包来做

// 根目录执行

npm install --save-dev lerna-update-wizard

四、发布

登录 npm

npm login

lerna changed 查看代码变化

lerna version 修改版本

lerna publish 发布

五、使用

安装:

npm i @syyyds-cli/vue2wx --save

使用脚手架:

"scripts": {

    "dev": "lsy-cli-repo-lerna",
},

遇到的坑:

1、https://blog.csdn.net/hahahhahahahha123456/article/details/82054908

当执行npm publish,发生了如下错误:

lerna ERR! E401 [UNAUTHORIZED] Login first

起先以为是账户的问题,我就执行了npm addusernpm login 都不行。

您首先执行下 npm adduser ,输入您相应的 Username 、 Password 、 Email: (this IS public) ,关键的一步来了!

Logged in as 您的Username on [https:*//registry.npmjs.org/.*](https://registry.npmjs.org/)

如果 on 后面不是 https://registry.npmjs.org/ ,而是其他的镜像,比如我们大家常见的淘宝镜像:
http://registry.npm.taobao.org/

那么您首先替换成原来的,替换成原来执行如下命令:

npm config set registry [https://registry.npmjs.org/](https://registry.npmjs.org/)

最后,替换完毕再执行npm addusernpm publish ,这样应该就ok了!

github

https://github.com/sy-l123/lerna-repo.git

相关文章

  • Lerna 教程

    一、什么是 lerna? 多包管理工具,方便我们在一个项目中管理多个 npm 包。它能够在发包时统一每个包的版本号...

  • lerna

    关键字:lerna yarn workspace lerna lerna init 将一个仓库初始化为 lerna...

  • Lerna入门教程

    Lerna简介 Lerna是一个优化基于git + npm的多package项目的管理工具 优势 大幅减少重复操作...

  • Lerna 入门教程

    概念 1.lerna 是什么 Lerna 是一个用来优化托管在git\npm上的多package代码库的工作流的一...

  • lerna使用攻略

    About Lerna[https://github.com/lerna/lerna]是一个工具,它优化了使用gi...

  • 基于 lerna 和 yarn workspace 的 mono

    基于 lerna 和 yarn workspace 的 monorepo 工作流 由于 yarn 和 lerna ...

  • Monorepo项目管理:lerna + workspaces

    这里主要介绍lerna、yarn workspaces的使用方法与职能界限。 lerna:项目管理与发版 work...

  • lerna 多包管理

    Lerna Lerna 是一个管理工具,用于管理包含多个软件包(package)的 JavaScript 项目。将...

  • lerna+ git + npm

    lerna 命令 git 命令 npm命令

  • lerna

    前言 Lerna是一个管理多个Node模块的工具,已经被很多著名模块使用:Babel,React,Jest等 Mo...

网友评论

      本文标题:Lerna 教程

      本文链接:https://www.haomeiwen.com/subject/ridwurtx.html