国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)

這篇具有很好參考價(jià)值的文章主要介紹了Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

Tauri 嚴(yán)重依賴原生庫和工具鏈,因此目前無法在某一平臺(tái)實(shí)現(xiàn)交叉編譯。最佳選擇是使用托管在?GitHub Action、Azure Pipelines、GitLab?或其他選項(xiàng)上的 CI/CD 管道進(jìn)行編譯。管道可以同時(shí)為每個(gè)平臺(tái)運(yùn)行編譯,使編譯和發(fā)布過程更加容易。

為了便于設(shè)置,官方目前提供?Tauri Action。這是一個(gè)?GitHub Action,可在所有支持的平臺(tái)上運(yùn)行,編譯軟件,生成應(yīng)用程序安裝包,并將發(fā)布到?GitHub Releases。

GitHub Action

從構(gòu)思到生產(chǎn),自動(dòng)化工作流程

利用 GitHub Actions,在你的倉庫中自動(dòng)化、定制和執(zhí)行你的軟件開發(fā)工作流程。你可以發(fā)現(xiàn)、創(chuàng)建和共享操作,以執(zhí)行你想要的任何工作,包括 CI/CD,并在一個(gè)完全定制的工作流程中組合操作。

使用 Action

創(chuàng)建 release.yml

在項(xiàng)目根路徑下創(chuàng)建?.github/workflows?目錄,在?.github/workflows?下創(chuàng)建?release.yml(文件名自定義) 文件。將以下內(nèi)容復(fù)制到文件中:

# 可選,將顯示在 GitHub 存儲(chǔ)庫的“操作”選項(xiàng)卡中的工作流名稱
name: Release CI
 
# 指定此工作流的觸發(fā)器
on:
  push:
    # 匹配特定標(biāo)簽 (refs/tags)
    tags:
      - 'v*' # 推送事件匹配 v*, 例如 v1.0,v20.15.10 等來觸發(fā)工作流
 
# 需要運(yùn)行的作業(yè)組合
jobs:
  # 任務(wù):創(chuàng)建 release 版本
  create-release:
    runs-on: ubuntu-latest
    outputs:
      RELEASE_UPLOAD_ID: ${{ steps.create_release.outputs.id }}
 
    steps:
      - uses: actions/checkout@v2
      # 查詢版本號(hào)(tag)
      - name: Query version number
        id: get_version
        shell: bash
        run: |
          echo "using version tag ${GITHUB_REF:10}"
          echo ::set-output name=version::"${GITHUB_REF:10}"
 
      # 根據(jù)查詢到的版本號(hào)創(chuàng)建 release
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: '${{ steps.get_version.outputs.VERSION }}'
          release_name: 'app ${{ steps.get_version.outputs.VERSION }}'
          body: 'See the assets to download this version and install.'
  
  # 編譯 Tauri
  build-tauri:
    needs: create-release
    strategy:
      fail-fast: false
      matrix:
        platform: [macos-latest, ubuntu-latest, windows-latest]
 
    runs-on: ${{ matrix.platform }}
    steps:
      - uses: actions/checkout@v2
 
     # 安裝 Node.js
      - name: Setup node
        uses: actions/setup-node@v1
        with:
          node-version: 16
 
      # 安裝 Rust
      - name: Install Rust stable
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
 
      # 使用 Rust 緩存,加快安裝速度
      - uses: Swatinem/rust-cache@v1
 
      - name: install dependencies (ubuntu only)
        if: matrix.platform == 'ubuntu-latest'
        run: |
          sudo apt-get update
          sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
 
      # 可選,如果需要將 Rust 編譯為 wasm,則安裝 wasm-pack
      - uses: jetli/wasm-pack-action@v0.3.0
        with:
          # Optional version of wasm-pack to install(eg. 'v0.9.1', 'latest')
          version: v0.9.1
 
      # 可選,如果需要使用 rsw 構(gòu)建 wasm,則安裝 rsw
      - name: Install rsw
        run: cargo install rsw
 
      # 獲取 yarn 緩存路徑
      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
 
      # 使用 yarn 緩存
      - name: Yarn cache
        uses: actions/cache@v2
        id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-
 
      # 安裝依賴執(zhí)行構(gòu)建,以及推送 github release
      - name: Install app dependencies and build it
      # 這里的pubhome要修改為你package.json里面配置的編譯命令
        run: yarn && yarn pubhome
      - uses: tauri-apps/tauri-action@v0.3
        env:
          GITHUB_TOKEN: ${{ secrets.TOKEN }}
        with:
          releaseId: ${{ needs.create-release.outputs.RELEASE_UPLOAD_ID }}

觸發(fā) Action

使用?GitHub Tag?來觸發(fā) Action

# 創(chuàng)建 tag
git tag v0.1.0

# 推送 tag
git push --tag

?然后到工作流頁面:

Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)

然后到releases頁面就可以看到下載包:

Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)

注意注意?。。。?!常見報(bào)錯(cuò)原因

1.yaml文件里面的配置要正確,要和package.json結(jié)合使用

比如你的package.json里面的腳本長這樣,其中前四個(gè)是tauri腳手架生成項(xiàng)目后自帶的,千萬不要試圖修改,不然會(huì)報(bào)很多錯(cuò)誤,最后一個(gè)pubhome是我自己編寫,你也可以換成你自己寫的Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)

但是換完之后,就要同步修改yarm里面的配置:Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)

如果你試圖修改了前四個(gè),或者沒有更換最后一個(gè)為你自己的,你會(huì)遇到一下報(bào)錯(cuò):

這個(gè)錯(cuò)誤是因?yàn)槲以谑褂胮ubhome之前,是publish這個(gè)詞,結(jié)果和yarn關(guān)鍵詞沖突導(dǎo)致的error No token found and can't prompt for login when running with --non-interactive.

[1/4] Resolving packages...

11[2/4] Fetching packages...

12[3/4] Linking dependencies...

13warning " > sass-loader@13.2.0" has unmet peer dependency "webpack@^5.0.0".

14warning " > style-loader@3.3.2" has unmet peer dependency "webpack@^5.0.0".

15[4/4] Building fresh packages...

16Done in 61.95s.

17yarn publish v1.22.19

18warning package.json: No license field

19warning package.json: No license field

20[1/4] Bumping version...

21info Current version: 0.0.0

22[2/4] Logging in...

23error No token found and can't prompt for login when running with --non-interactive.

24info Visit yarn publish | Yarn for documentation about this command.

25Error: Process completed with exit code 1.

還有這個(gè)錯(cuò)誤:error: unexpected argument 'build' found,是因?yàn)槲抑暗膒ackage.json里面修改了官方的tauri命令,原來是"tauri": "tauri",我修改為了"tauri": "tauri dev" 導(dǎo)致的

running yarn [ 'tauri', 'build' ]

16yarn run v1.22.19

17warning package.json: No license field

18$ tauri dev build

19 Running BeforeDevCommand (`yarn dev`)

20warning package.json: No license field

21$ vite

22

23 VITE v4.2.0 ready in 662 ms

24

25 ? Local: http://localhost:1420/

26 ? Network: use --host to expose

27error: unexpected argument 'build' found

28

29Usage: cargo.exe build [OPTIONS]

30

31For more information, try '--help'.

32 Info Watching D:\a\Vue3TsHome\Vue3TsHome\src-tauri for changes...

33error Command failed with exit code 1.

34info Visit yarn run | Yarn for documentation about this command.

35Error: Command failed with exit code 1: yarn tauri build

還有這個(gè)錯(cuò)誤:No artifacts were found.是因?yàn)閥aml文件里面- uses: tauri-apps/tauri-action@v0導(dǎo)致的,修改為官方最新的uses: tauri-apps/tauri-action@v0.3就好了

$ vue-tsc --noEmit && vite build

20vite v4.1.4 building for production...

21transforming...

22? 1049 modules transformed.

23rendering chunks...

24computing gzip size...

25dist/index.html 0.46 kB

26dist/assets/index-d56eeb64.css 600.06 kB │ gzip: 70.17 kB

27dist/assets/index-e1747f8c.js 1,154.01 kB │ gzip: 371.05 kB

28

29(!) Some chunks are larger than 500 kBs after minification. Consider:

30- Using dynamic import() to code-split the application

31- Use build.rollupOptions.output.manualChunks to improve chunking: Configuration Options | Rollup

32- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.

33 Compiling tauri_some v0.0.0 (/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri)

34 Finished release [optimized] target(s) in 39.61s

35 Bundling 1024_0.0.1_amd64.deb (/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/deb/1024_0.0.1_amd64.deb)

36 Bundling 1024_0.0.1_amd64.AppImage (/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/appimage/1024_0.0.1_amd64.AppImage)

37 Finished 2 bundles at:

38 /home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/deb/1024_0.0.1_amd64.deb

39 /home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/appimage/1024_0.0.1_amd64.AppImage

40

41Done in 145.47s.

42Expected artifacts paths:

43/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/deb/102_0.0.1_amd64.deb

44/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/appimage/_0.0.1_amd64.AppImage

45/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/appimage/_0.0.1_amd64.AppImage.tar.gz

46/home/runner/work/Vue3TsHome/Vue3TsHome/src-tauri/target/release/bundle/appimage/_0.0.1_amd64.AppImage.tar.gz.sig

47Error: No artifacts were found.

上面這個(gè)錯(cuò)誤,大概率只會(huì)導(dǎo)致linux編譯失敗Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)?文章來源地址http://www.zghlxwxcb.cn/news/detail-498271.html

到了這里,關(guān)于Tauri開發(fā)的程序,使用github action快速跨平臺(tái)編譯并發(fā)布流程,包括Windows、mac、m芯片、linux等,以及常見報(bào)錯(cuò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 3 天,入門 TAURI 并開發(fā)一個(gè)跨平臺(tái) ChatGPT 客戶端

    3 天,入門 TAURI 并開發(fā)一個(gè)跨平臺(tái) ChatGPT 客戶端

    ? TAURI 是一個(gè)使用 Rust 編寫的程序框架,它允許我們使用 Web 技術(shù)和 Rust 語言構(gòu)建跨端應(yīng)用。它提供了大量特性,例如系統(tǒng)通知、網(wǎng)絡(luò)請(qǐng)求、全局快捷鍵、本地文件處理等,它們都可以在前端通過 JavaScript 便捷的調(diào)用。 TAURI 應(yīng)用的后端基于 Rust,這是一種內(nèi)存安全、性能出色

    2024年02月13日
    瀏覽(21)
  • WEB跨平臺(tái)桌面程序構(gòu)建工具對(duì)比(Electron、Tauri、Wails)

    WEB跨平臺(tái)桌面程序構(gòu)建工具對(duì)比(Electron、Tauri、Wails)

    WEB 跨平臺(tái) 桌面應(yīng)用程序 顧名思義就是用 JavaScript、HTML、CSS 等前端技術(shù)構(gòu)建跨平臺(tái)的桌面應(yīng)用,WEB 負(fù)責(zé) GUI 渲染并與后端(如 Node.js、Python、Rust 等)交互,從而突破自身無法操作 OS 層級(jí)資源的限制。其實(shí)現(xiàn)在如火如荼的 小程序 原理也類似,只是把后端換成宿主 APP (如微信

    2024年02月05日
    瀏覽(75)
  • 我想開發(fā)一款跨平臺(tái)桌面軟件,請(qǐng)告訴我qt、electron、tauri、pyqt、flutter分別適合開發(fā)哪些跨平臺(tái)桌面

    我想開發(fā)一款跨平臺(tái)桌面軟件,請(qǐng)告訴我qt、electron、tauri、pyqt、flutter分別適合開發(fā)哪些跨平臺(tái)桌面

    不同的跨平臺(tái)桌面開發(fā)工具適用于不同的應(yīng)用場景和開發(fā)者需求。以下是關(guān)于 Qt、Electron、Tauri、PyQt、Flutter 的簡要說明,以幫助你更好地選擇適合你項(xiàng)目的工具: Qt: 適用場景: Qt 是一個(gè)強(qiáng)大的 C++ 框架,適用于開發(fā)需要高性能和原生外觀的桌面應(yīng)用。它具有廣泛的平臺(tái)支持

    2024年02月22日
    瀏覽(95)
  • .NET Core使用SkiaSharp快速生成二維碼( 真正跨平臺(tái)方案)

    .NET Core使用SkiaSharp快速生成二維碼( 真正跨平臺(tái)方案)

    在.NET 6之前我們一直是使用QRCoder來生成二維碼(QRCoder是一個(gè)非常強(qiáng)大的生成二維碼的組件,用到了 System.Drawing.Common ?包),然后從.NET 6開始,當(dāng)為非 Windows 操作系統(tǒng)編譯引用代碼時(shí),平臺(tái)分析器會(huì)發(fā)出編譯時(shí)警告。異常如下: 由于 System.Drawing.Common 被設(shè)計(jì)為 Windows 技術(shù)的精

    2024年01月20日
    瀏覽(105)
  • Vue.js + Electron 的跨平臺(tái)桌面應(yīng)用程序開發(fā)

    本文介紹了 Vue.js 和 Electron 的基本特點(diǎn)和原理,并分析了它們?cè)谧烂鎽?yīng)用程序開發(fā)中的優(yōu)勢和應(yīng)用場景。在基于 Vue.js 和 Electron 的桌面應(yīng)用程序開發(fā)實(shí)踐中,本文詳細(xì)介紹了項(xiàng)目的搭建和配置,包括環(huán)境的準(zhǔn)備、項(xiàng)目的初始化和依賴的安裝等步驟。然后,本文介紹了使用 Vu

    2024年02月13日
    瀏覽(19)
  • 跨平臺(tái)的桌面應(yīng)用程序開發(fā)框架Electron | 開源日?qǐng)?bào) 0906

    跨平臺(tái)的桌面應(yīng)用程序開發(fā)框架Electron | 開源日?qǐng)?bào) 0906

    Stars: 109.3k License: MIT Electron 是一個(gè)基于 Node.js 和 Chromium 的開源框架,允許使用 JavaScript、HTML 和 CSS 編寫跨平臺(tái)的桌面應(yīng)用程序。它被 Atom 編輯器等眾多應(yīng)用程序所采用。該項(xiàng)目具有以下核心優(yōu)勢: 跨平臺(tái):Electron 提供了 macOS、Windows 和 Linux 三個(gè)主要操作系統(tǒng)的二進(jìn)制文件。

    2024年02月09日
    瀏覽(27)
  • C#使用xamarin進(jìn)行跨平臺(tái)開發(fā)

    使用 Xamarin 進(jìn)行跨平臺(tái)開發(fā)可以使用 C# 和 .NET 平臺(tái)來開發(fā)移動(dòng)應(yīng)用程序,同時(shí)將代碼在多個(gè)主要移動(dòng)操作系統(tǒng)上運(yùn)行,包括 Android 和 iOS。以下是在 C# 中使用 Xamarin 進(jìn)行跨平臺(tái)開發(fā)的一般步驟: 安裝 Xamarin : 在開始之前,你需要安裝 Xamarin 開發(fā)環(huán)境。你可以選擇安裝 Visual

    2024年02月11日
    瀏覽(96)
  • Flutter:引領(lǐng)移動(dòng)開發(fā)新潮流,跨平臺(tái)應(yīng)用程序的終極解決方案

    Flutter:引領(lǐng)移動(dòng)開發(fā)新潮流,跨平臺(tái)應(yīng)用程序的終極解決方案

    Flutter是由Google開發(fā)的一款開源移動(dòng)應(yīng)用開發(fā)框架,它可以幫助開發(fā)者快速高效地構(gòu)建跨平臺(tái)的移動(dòng)應(yīng)用程序。Flutter基于Dart編程語言,具有簡單易學(xué)、高效靈活的特點(diǎn),并且可以與現(xiàn)有的Android和iOS應(yīng)用進(jìn)行集成。本文將介紹Flutter的基本概念、開發(fā)環(huán)境搭建、基礎(chǔ)組件、生命

    2024年02月04日
    瀏覽(111)
  • C#使用.Net Core進(jìn)行跨平臺(tái)開發(fā)

    使用 .NET Core 進(jìn)行跨平臺(tái)開發(fā)是一種靈活的方法,可以在多個(gè)操作系統(tǒng)上運(yùn)行 C# 應(yīng)用程序。以下是在 C# 中使用 .NET Core 進(jìn)行跨平臺(tái)開發(fā)的一般步驟: 安裝 .NET Core SDK : 在開始之前,需要安裝適用于操作系統(tǒng)的 .NET Core SDK。可以從官方網(wǎng)站(https://dotnet.microsoft.com/download)下載

    2024年02月11日
    瀏覽(93)
  • 在CPF里使用OpenGL做跨平臺(tái)桌面應(yīng)用開發(fā)

    在CPF里使用OpenGL做跨平臺(tái)桌面應(yīng)用開發(fā)

    CPF 是開源的C#跨平臺(tái)UI框架,支持使用OpenGL來渲染,可以用來硬件加速播放視頻或者顯示3D模型 實(shí)現(xiàn)原理其實(shí)就是Skia用OpenGL后端,Skia里綁定GLView的OpenGL紋理,將紋理作為Skia的圖像混合繪制。 在CPF里使用OpenGL,不能選擇NetCore3.0和Net4,需要選擇Netcore3.1以及之后的版本。 Nuget里

    2024年02月05日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包