angular - 在 Angular 库项目 package.json 文件中保持版本号同步

标签 angular npm angular-cli angular-library ng-packagr

在构建 Angular 库应用程序时,是否有一种自动方式来保持根级 package.json 和库应用程序的 package.json(例如,在 projects/my-library 下)文件版本同步当使用 npm version 命令时?

当我使用该命令时,它只会递增根级 package.json,是否有特殊命令或任何其他方式将版本号向下传播到库 package.json 文件?

我见过一些解决方案,例如在 ng build 之后运行脚本来读取根级 package.json 版本号并将其写入库一,但我不确定这是最好的方法。

有没有其他人在使用 Angular 构建库时遇到过这个问题?如果遇到过,您是如何处理的?

最佳答案

我见过有人向 vsavkin(Nrwl/Nx 伙计)问同样的问题,他的回答相当复杂 git sub-module approach .

虽然这个工作流程有点复杂,但它确实允许共享库单独进行版本控制,同时将它们保存在同一个父 git-repo 中。


正如您已经提到的,一个更简单的替代方法是让 monorepo 中的所有库与根 package.json 保持相同的版本——类似于 Angular monorepo 如何同时更新所有 Angular 包的版本。

这可以在节点中轻松完成,或者在 bash/shell 中使用更多脚本编写。

Here's a gist with node, bash & shell examples of how to extract the version from the root package.json .


要真正提高包的版本,这里有一个简单的方法:安装这个 npm package (用于编辑 json 文件的一个很好的 CLI)并阅读 In-Place editing section .您现在应该拥有所需的所有工具!


这是一个使用节点的示例 bash 脚本:

cd libs/my-library && json -I -f package.json this.version=$(node -pe \"JSON.stringify(require('../../package.json').version)\")

关于angular - 在 Angular 库项目 package.json 文件中保持版本号同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485292/

相关文章:

angular - 使用 Directive Angular 时 @ViewChild 为 null

angularjs - 没有模板/模板的 Angular 2 bootstrap 应用程序组件由 html 提供

node.js - 发布的数据是否应该从后端返回? Angular + Node

html - Angular - 使用带 ngModel 的日期管道

github - Github 和 npm markdown 之间的区别

javascript - 如何继续在同一个 csv 文件上写入?

angular - 导入组件和模块的快捷方式

npm - 在同一控制台上使用 ng build watch 和 gulp watch

angular - [Angular-CLI-6]无法确定 'Serve' 目标的单个项目

python - Node 模块无法安装 - 上下文关联?