簡體   English   中英

Angular / node.js 如何將應用程序版本從 package.json 復制到另一個非 json 文件

[英]Angular / node.js how to copy the app version from package.json to anothe non json file

在我的 Angular 應用程序中,在構建它時,我必須捕獲應用程序版本,它位於我的package.json文件中,並將其復制到另一個不是 json 文件的文件。

我的package.json文件:

{
  "name": "my app",
  "author": "ME",
  "version": "0.1.3",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --public-host --port 4222 http://localhost:4222/",
    "build": "ng build",
    "sync-version": "sync-json -v --property version --source package.json projects/cockpit-tools/package.json && sync-json -v --property version --source package.json projects/cockpit-tools-demo/src/assets/configuration/properties.json",
    "sync-custom": "shx  node -p -e \"require('./package.json').version\"",
    "copy-version":"MY_COMMAND"
...
}

我的目標文件是屬性文件,看起來像這樣,它位於 package.json 的相同路徑中(此文件用於另一個自動化級別,這就是我無法更改它的原因)

應用信息.properties

project.version=0.0.0
project.author=ME

我的目的是編寫一個命令行任務腳本,我可以運行它來同步/復制版本從package.json到我的目標文件中的project.version屬性。

我已經嘗試了一個名為sync-version的 npm 庫,但只有當目標是 json 文件時才有效

我也嘗試過在shx package 中使用 shell 命令行來執行此操作。但也沒有按預期工作。

我也嘗試了一些 node.js 技巧(需要...),但問題仍然存在

我需要找到一種以最簡單的方式來完成它的方法,而不是必須安裝一些 linux 工具或類似工具(jq 或其他),因為這會在某些 CI CD 上下文中運行,所以寧願像本機一樣盡可能通用。

建議?

一個經典的 DevOps 場景:)

CI/CD 通常發生在 linux 環境中。 您可能會有普通的 shell/bash。 嘗試將版本提取到變量中:

myVersion=`grep 'version:' package.json | awk '{print $2}'`

然后在應用程序信息中替換它:

sed -i "s/0.0.0/$myVersion/" apps-info.properties

我們可以通過始終提取最新版本而不是 0.0.0 來使 ot 更通用,但我認為你應該有一個像 0.0.0 這樣的占位符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM