npm 的一些东西

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

  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 是一样的功效。

posted @ 2018-04-14 15:52  空城夕  阅读(709)  评论(0编辑  收藏  举报