Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards.
SOLVED

Why Node JS and NPM?

Avatar

Level 8

Hi all,

 

I am installing AEM on my laptop.

 

Why will I need Node JS and NPM?

For build I use Maven. For code Eclipse.

 

Let us say I am developing only Back end AEM.

 

I appreciate all your replies.

 

Thanks,

Rama.

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor and Adobe Champion

Hi

 

The simple answer is that an AEM project consists of several modules, including both Frontend and Backend components. While you're likely already familiar with the Backend, which typically uses Maven and Java, the Frontend by default uses Node.js, npm, JavaScript, and potentially any modern JS framework. It's possible to focus only on the Backend, but at a minimum, you'll still need to compile and deploy the entire application to your AEM instance at some point.

 

You can learn more about the structure of an AEM project here:

https://experienceleague.adobe.com/en/docs/experience-manager-core-components/using/developing/arche...

 

Hope this helps

 

 



Esteban Bustamante

View solution in original post

8 Replies

Avatar

Community Advisor

Hi @nsvsrk ,

 

If you're working only on backend development in AEM - things like Sling Models, OSGi services, servlets, etc. - then:

Node.js and npm are not strictly required.


You can absolutely build and deploy using just Maven and develop in Eclipse or your preferred IDE.

However, Node.js and npm become important if your AEM project includes frontend development, such as:

  1. Client-side JavaScript (React, Vue, or even vanilla JS)
  2. CSS preprocessors like Sass or Less
  3. Frontend build tools (Webpack, Babel, PostCSS, etc.)
  4. The ui.frontend module (commonly generated by Adobe's official AEM Project Archetype)
  5. Integration with tools like aem-clientlib-generator (to package and deploy assets into AEM client libraries)

Most modern AEM projects include a ui.frontend module for handling client-side assets. Even if you're not actively developing frontend code, Maven will fail to build the full project if Node/npm aren't installed and the ui.frontend module is present.

 

Therefore:

  • Backend-only development? You don't need Node.js or npm, but you will need to somehow deploy frontend code on local instance. Without npm, Node.js you won't be able to do it. You just need it for one time.
  • Working on or building the full project? Yes - Node.js and npm are often required for frontend builds.

Best regards,

Kostiantyn Diachenko.

Kostiantyn Diachenko


Check out AEM VLT Intellij plugin


Avatar

Level 8

Thanks for these valuable insights.

 

1. Please share the brief functionalities of npm and Node.js. Node,js is a server?

 

2. When I run Maven from command line or deploy using any IDE like Eclipse, will they use npm and Node.js internally?

From my side I am not invoking npm and Node.js directly myself, even when deploying front end code.

Thus, all these days I have been able to deploy my whole code (front end and back end) using just Maven alone.

How is it possible?

 

3. When I install Maven from command line or any IDE like Eclipse, do they install npm and Node.js on their own?

I only have to install them from my side?

 

Thanks,

RK.

Avatar

Level 8

Hi @EstebanBustamante , @konstantyn_diachenko kindly reply.

 

Thanks,

RK.

Avatar

Community Advisor and Adobe Champion

Hi, 

 

1.

[Node.js] executes JavaScript code outside of a browser.

npm stands for "node.js package manager." Straight from the npm website

 

2. YES

3. The ui.frontEnd module within the POM has a plugin that downloads a local version of Node/npm to build and compile the files from the module 

 

Lastly, I strongly suggest reading the source I shared in my answer, which will clarify any doubts you may have.

 

Hope this helps



Esteban Bustamante

Avatar

Level 8

Hi Admin,

 

Why am I not seeing "Mark as Correct" option?

 

Thanks,

RK.

Avatar

Administrator

@nsvsrk You can check now, you should be able to mark it correct. 



Kautuk Sahni

Avatar

Level 4

Hi,
1. node.js is a JavaScript runtime built on Chrome’s V8 engine. It allows JavaScript to be executed outside of the browser, typically on the server side. Yes, Node.js can act as a server—you can create HTTP servers, APIs, web apps, etc., using frameworks like Express.js. It is event-driven, non-blocking, and ideal for scalable network applications.
npm is the default package manager for Node.js. It manages JavaScript packages/libraries.You can use it to install, version, and manage dependencies of front-end and back-end JavaScript projects.

2. it is technically possible to deploy front-end and back-end using just Maven if the front-end is already compiled (e.g., HTML, CSS, JS are static files).
(Or)
If Maven is using a plugin that handles npm scripts internally, assuming npm are already available on the system.

3. No, Maven and Eclipse do not install Node.js or npm automatically. You need to configure if your build depends on npm/Node.js, you must install them manually or configure your Maven build to install them during build time.

Hope this gives the info you are looking for.
Thanks
Kiran Buthpur

Avatar

Correct answer by
Community Advisor and Adobe Champion

Hi

 

The simple answer is that an AEM project consists of several modules, including both Frontend and Backend components. While you're likely already familiar with the Backend, which typically uses Maven and Java, the Frontend by default uses Node.js, npm, JavaScript, and potentially any modern JS framework. It's possible to focus only on the Backend, but at a minimum, you'll still need to compile and deploy the entire application to your AEM instance at some point.

 

You can learn more about the structure of an AEM project here:

https://experienceleague.adobe.com/en/docs/experience-manager-core-components/using/developing/arche...

 

Hope this helps

 

 



Esteban Bustamante