ionic-team / ionic-team/ionic-cli

Allow configuring npmClient on a project level

未關閉
#5,113 0 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
triage
主要語言
TypeScript
星號
2k
分支
682
PR 合併指標
30 天內沒有已合併 PR

描述

Currently, the npmClient ionic uses can only be set globally, using e.g.:
```sh
ionic config set -g npmClient pnpm
```

In my opinion, it should be possible to override this on a project level, e.g.:
```sh
ionic config set npmClient pnpm
```
This commands "succeeds" and updates the `ionic.config.json`, but ionic doesn't check that file for this parameter (a bit confusing).

The use cases:
- We have some older projects that use npm, and newer once use pnpm. It has happened multiple times that I run `ionic build` when i just switched project and forgot to switch package manager. This then creates a `pnpm-lock` file in an `npm` project. And regularly breaks my dependencies and requires deleting `node-modules` and reinstalling. This wastes time.
- We have pipelines that build iOS projects on local MacMini's. However, if the global ionic package manager changes, and a pipeline doesn't have the setting to change it back, the build breaks. It's not always obvious that the issue is caused by a switch in package manager.

This was previously suggested in https://github.com/ionic-team/ionic-cli/issues/4570, but was not implemented because the lack of use cases.

貢獻指南

開啟貢獻指南

研究方向

先追蹤現有的 `ionic config set` 對全域設定和專案層級 `ionic.config.json` 的處理方式,然後了解 `ionic build` 如何選擇其套件管理器。確認專案設定與全域設定之間所需的優先順序,並驗證建置會使用專案設定,而不會建立錯誤的 lockfile。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
typescript
領域
cli
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。