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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions