Multi-app projects using yarn in Ionic CI

オープン
#2,264 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
react
領域
ci-cd, devops

調査の方向性

レポートに示されている root およびプロジェクト固有の ionic.config.js ファイルから始め、次に npm ci を選択する Appflow の dependency_install ステップを追跡します。シングルアプリプロジェクトとマルチアプリプロジェクトで、設定がどのように読み取られるかを比較します。マルチアプリの設定が意図したパッケージマネージャーを確実に選択し、依存関係のインストールが npm にフォールバックしなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

triage

Description:
I have a project which uses yarn instead of npm. The project could be successfully built in Ionic CI. I converted it to multi-app by adding another ionic.config.js-file. After that, I have not been able to build it, even with trying various different options.

The details on using yarn could be found in the documentation and they are verifiably correct. I got yarn to work in the CI with a single application project. I converted the application to monorepo (using yarn workspaces). I ran into build problems with Ionic CI. The details about using yarn with multi-app are not available or are misleading.

The CI prints the error as follows (timestamps removed):

Checking if cordova or capacitor project
Cordova project detected
--------------------------------
--- Step: dependency_install ---
--------------------------------
Installing Dependencies
$ npm ci --quiet --no-optional
▸ npm ERR! The `npm ci` command can only install with an existing package-lock.json or
▸ npm ERR! npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or
▸ npm ERR! later to generate a package-lock.json file, then try again.
▸ npm ERR! A complete log of this run can be found in:
▸ npm ERR!     /root/.npm/_logs/2022-04-12T14_05_38_411Z-debug.log
`npm ci` failed falling back to `npm install`

I had the same issue when building a single package project. I fixed the error earlier by adding "yarn": true to the ionic.config.js.

After going multi-app, the yarn setting is not picked up. I tried the folllowing:

  • add "yarn": true to the root of ./ionic.config.js
  • add "npmClient": "yarn" to the root of ./ionic.config.js
  • add "yarn": true to a project inside projects in ./ionic.config.js
  • add "npmClient": "yarn" to a project inside projects in ./ionic.config.js
  • add "yarn": true to the root of project-specific ./ws/app/ionic.config.js
  • add "npmClient": "yarn" to the root of project-specific ./ws/app/ionic.config.js

Steps to Reproduce:

./ionic.config.js:

  "defaultProject": "app",
  "projects": {
    "app": {
      "name": "Mobile app",
      "integrations": {
        "capacitor": {}
      },
      "type": "react",
      "yarn": true,
      "root": "ws/app",
      "npmClient": "yarn"
    }
  },
  "yarn": true,
  "npmClient": "yarn"
}

./ws/app/ionic.config.js:

{
  "name": "app",
  "integrations": {
    "capacitor": {}
  },
  "type": "react",
  "yarn": true,
  "npmClient": "yarn"
}

Output:

Checking if cordova or capacitor project
Cordova project detected
--------------------------------
--- Step: dependency_install ---
--------------------------------
Installing Dependencies
$ npm ci --quiet --no-optional
▸ npm ERR! The `npm ci` command can only install with an existing package-lock.json or
▸ npm ERR! npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or
▸ npm ERR! later to generate a package-lock.json file, then try again.
▸ npm ERR! A complete log of this run can be found in:
▸ npm ERR!     /root/.npm/_logs/2022-04-12T14_05_38_411Z-debug.log
`npm ci` failed falling back to `npm install`

My ionic info:

Ionic:

   Ionic CLI       : 5.4.16 (/Users/name/workspace/name/maind/dev/maind/node_modules/ionic)
   Ionic Framework : @ionic/react 6.0.13

Capacitor:

   Capacitor CLI   : 3.4.1
   @capacitor/core : 3.4.1

Utility:

   cordova-res : not installed
   native-run  : 1.5.0

System:

   NodeJS : v16.14.2 (/Users/name/.nvm/versions/node/v16.14.2/bin/node)
   npm    : 8.5.0
   OS     : macOS Big Sur

Other Information:

I would like to use Appflow to build and distribute the app to shops.

主要言語
MDX
スター
621
フォーク
3.2k
平均マージ
1日 2時間
マージ済み PR(30日)
86

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ionic-team/ionic-docs のほかの issue

ionic-team/ionic-docs の issue をすべて見る

似ている issue

DevOps の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。