lerna
多包管理工具,提供 fixed 单一版本管理 和 independent 各包各自管理版本,两种模式。
常用命令:
lerna init 初始化项目目录
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
- 发布项目里的每个模块
- 执行lerna updated确定是否需要发布
- 假如需要发布 给lerna.json 版本号做自增
- 更新package.json里的版本号至最新
- 为新版本更新dependencies
- 为新版本创建一个git commit 和tag
- 发布更新项目到npm
- 一次发布所有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 是一样的功效。