多包管理工具,提供 fixed 单一版本管理 和 independent 各包各自管理版本,两种模式。

常用命令:

lerna init 初始化项目目录

npm 的一些东西
lerna init --fixed
lerna init --independent

lerna boostrap

统一给管理的包 install node modules, 为packages 中存在相互 dependencies的做Symlink, npm prepublish all bootstrapped packages.

lerna publish 发布当前项目

创建新的release版本,执行git commit/tag并发布到npm

  1. 发布项目里的每个模块
  2. 执行lerna updated确定是否需要发布
  3. 假如需要发布 给lerna.json 版本号做自增
  4. 更新package.json里的版本号至最新
  5. 为新版本更新dependencies
  6. 为新版本创建一个git commit 和tag
  7. 发布更新项目到npm
  8. 一次发布所有packages,删除lerna-temp tags和增加tags到latest
    lerna publish --npm-tag=next
    lerna publish --canary
    lerna publish --skip-git
    lerna publish --skip-npm
    lerna publish --force-publish=*

lerna exec

lerna clean 移除所有管理包的 node modules

lerna updated

lerna diff

.gitignore 和 .npmignore

.gitignore 是防止某些文件提高到git
.npmignore 是防止某些文件发布出去

一般来说,项目默认不带.npmignore文件,若项目中带.gitignore 则使用.gitignore文件内容的配置项。如果有.npmignore文件, 则使用.npmignore文件, 忽略.gitignore文件。

.npmignore文件,无法排除package.json和README.*文件;

NPM内置设定以下文件必须被排除
..swp
.
.swp
._*
.DS_Store
.git
.hg
.lock-wscript
.svn
.wafpickle-*
CVS
npm-debug.log

打开 package 主页

npm home $package

打开 package Github 仓库

npm repo $package

锁定依赖版本

npm shrinkwrap , 有时候 mac 和 windows 安装 node_modules 会出现不一样,会需要这个锁定版本。和 packages-lock.json 是一样的功效。

相关文章:

  • 2022-02-10
  • 2022-02-26
  • 2022-02-26
  • 2021-12-10
  • 2021-07-11
  • 2022-02-06
  • 2022-01-27
猜你喜欢
  • 2022-12-23
  • 2022-01-16
  • 2021-05-18
  • 2021-11-18
  • 2022-12-23
  • 2021-07-27
  • 2021-08-29
相关资源
相似解决方案