源码搭建研发管理服务器租用lerna管理前端packages的最佳实践58.82.224.6

源码搭建研发管理服务器租用lerna管理前端packages的最佳实践58.82.224.6
需要服务器咨询以下联系方式
联系人:銳輝(香港)科技 敏敏
扣扣:3007425289/2853898501
电话:18316411879
什么是lerna
lerna到底是什么呢?lerna官网上是这样描述的
用于管理具有多个包的javascript项目的工具。
这个介绍可以说很清晰了,引入lerna后,上面提到的问题不仅迎刃而解,更为开发人员提供了一种管理多packages javascript项目的方式。
一、自动解决packages之间的依赖关系。
二、通过git 检测文件改动,自动发布。
三、根据git 提交记录,自动生成changelog
常用命令
全局安装lerna
lerna 我们需要全局安装lerna工具。
$ npm i -g lerna
# 或
$ yarn global add lerna
为所有项目安装依赖,类似于npm/yarn i
$ lerna bootstrap
提交对项目的更新
运行该命令会执行如下的步骤
运行lerna updated来决定哪一个包需要被publish
如果有必要,将会更新lerna.json中的version
将所有更新过的的包中的package.json的version字段更新
将所有更新过的包中的依赖更新
为新版本创建一个git commit或tag
将包publish到npm上
$ lerna publish # 用于发布更新
$ lerna publish --skip-git # 不会创建git commit或tag
$ lerna publish --skip-npm # 不会把包publish到npm上
使用lerna 初始化项目
$ lerna init # 固定模式(fixed mode)默认为固定模式,packages下的所有包共用一个版本号(version)
$ lerna init --independent # 独立模式(independent mode),每一个包有一个独立的版本号
为packages文件夹下的package安装依赖
$ lerna add <package>[@version] [--dev] # 命令签名
# 例如
$ lerna add module-1 --scope=module-2 # 将 module-1 安装到 module-2
$ lerna add module-1 --scope=module-2 --dev # 将 module-1 安装到 module-2 的 devdependencies 下
$ lerna add module-1 # 将 module-1 安装到除 module-1 以外的所有模块
$ lerna add babel-core # 将 babel-core 安装到所有模块
卸载依赖
$ lerna exec -- <command> [..args] # 在所有包中运行该命令
# 例如
$ lerna exec --scope=npm-listyarn remove listr # 将 npm-list 包下的 listr 卸载
$ lerna exec -- yarn remove listr # 将所有包下的 listr 卸载
检查对包是否发生过变更(前提是git代码已经提交)
$ lerna updated
# 或
$ lerna diff
显示packages下的各个package的name
$ lerna ls
清理node_modules
$ lerna clean
lerna run
运行npm script,可以指定具体的package。
$ lerna run <script> -- [..args] # 在所有包下运行指定
# 例如
$ lerna run test # 运行所有包的 test 命令
$ lerna run build # 运行所有包的 build 命令
$ lerna run --parallel watch # 观看所有包并在更改时发报,流式处理前缀输出
$ lerna run --scope my-component test # 运行 my-component 模块下的 test
lerna.json解析
{
"version": "1.1.3",
"npmclient": "npm",
"command": {
"publish": {
"ignorechanges": [
"ignored-file",
"*.md"
]
},
"bootstrap": {
"ignore": "component-*",
"npmclientargs": ["--no-package-lock"]
}
},
"packages": ["packages/*"]
}
version:当前库的版本
npmclient: 允许指定命令使用的client, 默认是 npm, 可以设置成 yarn
command.publish.ignorechanges:可以指定那些目录或者文件的变更不会被publish
command.bootstrap.ignore:指定不受 bootstrap 命令影响的包
command.bootstrap.npmclientargs:指定默认传给 lerna bootstrap 命令的参数
command.bootstrap.scope:指定那些包会受 lerna bootstrap 命令影响
packages:指定包所在的目录
环境配置
git 在一个lerna工程里,是通过git来进行代码管理的。所以你首先要确保本地有正确的git环境。 如果需要多人协作开发,请先创建正确的git中心仓库的链接。 因此需要你了解基本的git操作,在此不再赘述。
npm仓库 无论你管理的package是要发布到官网还是公司的私有服务器上,都需要正确的仓库地址和用户名。 你可运行下方的命令来检查,本地的npm registry地址是否正确。
$ npm config ls
lerna 我们需要全局安装lerna工具
$ npm i -g lerna
# 或
$ yarn global add lerna
初始化一个lerna工程
在这个例子中,我将在我本地d:/jobs 根目录下初始化一个lerna工程。1、在d:/jobs下创建一个空的文件夹,命名为lerna-demo
$ mkdir lerna-demo
初始化 通过cmd进入相关目录,进行初始化
$ cd d:/jobs/lerna-demo
$ lerna init
执行成功后,目录下将会生成这样的目录结构。
- packages(目录)
- lerna.json(配置文件)
- package.json(工程描述文件)
3、添加一个测试package
默认情况下,package是放在packages目录下的。
# 进入packages目录
cd d:/jobs/lerna-demo/packages
# 创建一个packge目录
mkdir module-1
# 进入module-1 package目录
cd module-1
# 初始化一个package
npm init -y
执行完毕,工程下的目录结构如下:
--packages
--module-1
package.json
--lerna.json
--package.json