网站的绝对路径,黑河网站建设,云南网站建设营销,北京天津网站建设lerna版本
以下所有配置命令都是基于v8.1.9#xff0c;lerna v5 v7版本差别较大#xff0c;在使用时#xff0c;注意自身的lerna版本。
lerna开启缓存及缓存配置
nx缓存是v5版本以后才有的#xff0c;小于该版本的无法使用该功能。
初始化配置
缓存配置文件nx.jsonlerna v5 v7版本差别较大在使用时注意自身的lerna版本。
lerna开启缓存及缓存配置
nx缓存是v5版本以后才有的小于该版本的无法使用该功能。
初始化配置
缓存配置文件nx.json如果没有该配置文件执行 lerna add-caching命令会自动创建该文件。
{targetDefaults: {build: {cache: true,outputs: [{projectRoot}/lib]}
}需要对哪个执行脚本的输出结果进行缓存就配置对应的命令。这里配置的是缓存build命令的结果。默认缓存输出目录是dist如果不同需自定义output目录。其中{projectRoot}为当前package的相对路径不建议修改。如果需要整个工程目录用{workspacesRoot}
缓存执行结果
当首次执行lerna run build --scope packageA时会缓存对应的终端输出结果以及对应的构建结果文件。在项目根目录会生成.nx文件夹里面cache子目录下会存放对应的缓存数据。执行结果缓存放在cache目录下一个随机数目录。
缓存生成以后下次执行build命令时如果命中缓存lerna不会实际执行npm脚本命令而是从缓存中读取。
清除缓存
删除outputs对应目录下的文件重新执行build命令也不能真正重新执行npm而是从缓存中重新创建对应的输出文件。如果想要清除缓存结果执行npx nx reset
控制执行方式
如果当前工作区中有多个packagepackageA中执行serve命令时依赖packageB的构建结果要怎么做
// packageA 中某文件
import PackageB from packageB
// ....那我们希望在执行lerna run serve --scope packageA 时如果packageB没有构建可以先自动执行packageB的构建。通过配置nx.json中的dependsOn可以达到。
{targetDefaults: {serve: {dependsOn: [^build]}
}^build表示serve命令依赖于先执行依赖构建命令。如上面代码示例中packageA中依赖了packageB会优先执行packageB的build命令。
工程依赖
如果想查看当前工程下各个包之间的依赖关系执行npx nx graph可以查看包与包之间的依赖
发布包
Fixed: 固定包版本【默认】
lerna publish 当使用固定模式时所有受影响的包将使用相同的版本发布。在单一版本号模式下运行版本号在根目录lerna.json中。每次publish时有更新的包会发布对应的version版本如果包无更新则不发布。如果主版本号是0开始则每次会为所有子包发布新版本。
这样带来的一个问题是当持续更新某一子包而其他子包不更新时Lerna将只对自上一个版本以来更改过的包进行版本和发布这会导致包的版本随着时间的推移而漂移。 lerna publish --force-publish 可以解决版本漂移问题强制为所有子包更新版本。
Independent: 独立包版本
npx lerna init --independent 独立模式Lerna项目允许维护者彼此独立地增加软件包版本。将lerna.json中的version设置为independent使其运行在independent模式 lerna publish from-package 会比较所有包的当前版本与已发布的npm包版本如果有更新就会发布对应的包。