lease enable support for modern package managers in the Frontend Deployment Pipeline. Currently the pipeline only supports NPM, which although widely adopted is also generally known as the slowest solution for package management within the nodejs ecosystem. Consider support for yarn or pnpm, both of which outperform NPM from a CI/CD perspective.
Use-case:
We currently use Yarn on Managed Services to deploy full stack code. However, when migrating to Cloud Services and wanting to take advantage of the Front End (FED) pipeline, NPM is assumed and only the version can be altered via pipeline variables. We use Yarn as it has additional features and builds/deploys faster than NPM. Similarly, pnmp and Yarn PnP deploy about twice as fast as npm in our benchmark tests.
Current/Experienced Behavior:
Customers must use NPM and package-lock.json as the deployment package manager
Improved/Expected Behavior:
Customers can customize the FED deployment pipline to usee the package manager of their choice. This could be either an explicit selection, a pipeline variable, or the pipeline could lockfile detection (npm uses package-lock.json, yarn uses yarn.lock, pnpm uses pnpm-lock.yaml)
Environment Details (AEM version/service pack, any other specifics if applicable):
This request is for AEM Cloud Service, current version.
@lstockmoe2 Looks good. Just one correction in your description "only the version can be altered via pipeline variables."- you can update node/ npm version from POM.xml as well - [0]. Also explore this- [1] and try to change execution goal to run yarn install.
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
<configuration>
<!-- optional: The default argument is actually "install", so unless you need to run some other yarn command, you can remove this whole <configuration> section. -->
<arguments>install</arguments>
</configuration>
</execution>
This has been reported to the engineering under the internal reference SITES-12884. The product team will triage this request to verify feasibility based on the prioritization model. This post will be updated according to the Jira request status.