Skip to content

Allow configuring npmClient on a project level #5113

@immortaly007

Description

@immortaly007

Currently, the npmClient ionic uses can only be set globally, using e.g.:

ionic config set -g npmClient pnpm

In my opinion, it should be possible to override this on a project level, e.g.:

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 #4570, but was not implemented because the lack of use cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions