ionic-team / ionic-team/ionic-docs

Multi-app projects using yarn in Ionic CI

オープン
#2,264 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
triage
主要言語
MDX
スター
621
フォーク
3.2k
平均マージ
1日 2時間
マージ済み PR(30日)
86

説明

**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.

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

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

評価

この issue はまだ評価されていません。

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

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