lerna 包管理流程

1、lerna + npm link 软链的使用流程:

  • 0、先将lerna 项目进行打包:执行项目全局的npm run build(会自动将每个包build),因为最终被引用的是lib(或其他编译打包好的文件),而绝不是源代码

  • 1、先lerna link 将整个组件包link到全局node_modules(实际上只能软链主包,其他的需要手动一个一个link,不是手动进入子包,而是直接在外部执行lerna bootstrap更新整个包的内部的依赖, 然后再次执行npm run build-> lerna link)

  • 2、将项目中的node_modules删掉(执行 rmdir /s node_modules)

  • 3、在项目中使用: npm link 包名

  • 4、再 npm install 其他的包

  • 5、再 npm start

  • 6、如果首次link成功了,那么后续的link只需要再次执行1、卸载原包(npm unlink),再重新npm link

2、lerna包发布流程及注意事项:

  • 1、先在外部打包:npm run build (同6.0)

  • 2、再git add . && git commit

  • 3、再执行lerna publish,然后每一个包的gitHead值会发生改变,然后同时会发生两种情况:

    • 1、npm登录成功 直接发布成功
    • 2、npm登录失败 –> 依次进入每一个包内,手动发布:(cd packages/子包名 –> lerna ls (获取所有包)-> npm/cnpm/tnpm publish)
  • 4、每一次发布,子包都会生成独立的包

8、锁包流程

        当依赖包发生改变时,需要修改package.json 和 package-lock.json中的版本号,package-lock.json中的版本号是自动生成的,如何实现自动生成呢?

  • 1、  先手动修改package.json中依赖包的版本号

  • 2、  删掉node_modules (rmdir /s node_modules)

    • 1、有时候删掉这个文件,锁包完成之后,重新install会导致一些包安装不上,有可能是-lock的原因,因此最好是同时把packages-lock.json也删掉(del -F packages-lock.json)
  • 3、  执行:npm i 包名@版本号–package-lock-only

    • a) 例如:npm i antd@4.0.0 –package-lock-only
    • b) cnpm/tnpm 都不太行
    • c) 如果依赖包是以多个包的形式存在的,就依次执行a
    • d) 其实单独执行a的时候,实际上也会修改package.json中的版本号,同时也会修改-lock中的内容
    • e) 如果包的源更换了,切换源的方法:npm i packageName –package-lock-only –registry=包源
  • 4、再整体安装所有的包:npm/cnpm/tnpm i

  • 5、然后就可以启动了:npm start

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享