Expand my Community achievements bar.

Enable support for modern package managers (Yarn or PNPM) in the Frontend Deployment Pipeline of Cloud Manager

Avatar

Level 1

3/15/23

Request for Feature Enhancement (RFE) Summary:

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.
Customer-name/Organization name: Toyota Motors North America (TMNA)
Screenshot (if applicable)033bee36-3030-4060-b8e3-e9ddc60f387f.png

 
Code package (if applicable):  
4 Comments

Avatar

Employee Advisor

3/16/23

@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>

 

[0]- https://github.com/schoudry/eaem-extensions/blob/master/eaem-cloud-service/eaem-cs-spa-read-post-dat... 

[1]- https://github.com/eirslett/frontend-maven-plugin 

Avatar

Level 1

3/21/23

@vivekanand-mishra,

That only works for the full stack pipeline. In the FED pipeline, we have no options to modify what toolchain is used to build the artifacts.

Avatar

Administrator

4/19/23

@lstockmoe2 

Thanks for proposing this idea
 
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.
Status changed to: Investigating