The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

NPM is not found in script

Amit Sharma
October 12, 2023

Background:

In the pipeline step, I have added multiple scripts something like 

image: drupal:9.5.11-php8.1-fpm
pipelines:
  branches:
    test:
      - step:
          script:

            - scripts/pipelines/setup.sh
            - scripts/pipelines/validate.sh
            - scripts/pipelines/build_artifact.sh
            - scripts/pipelines/deploy_artifact.sh
          services:
            - docker
            - mysql
          caches:
            - docker
            - node
            - composer

I used an image where node and npm are unavailable, so I need to install the node using nvm in setup.sh. I am able to install node and npm and the commands successfully are running properly in the setup script.

I am using Acquia BLT in this pipeline. BLT command is running post code command hook where I am running one script (frontend_build.sh) to run npm install and npm run build.

Problem:

Inside frontend_build.sh, it is giving an error "npm command not found".

Solution Tried:

  • I tried to update the PATH variable and source ~/.bashrc. This shows showing updated path.
  • Tried to export the npm path in the custom variable but nothing works.

 

Suggestions are welcome.

Thanks very much for all the help.

2 answers

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

0 votes
Mark C
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 15, 2023

Hi @Amit Sharma,

Thank you for reaching out to the community.

May we know how you're installing NPM in your build?
This is because when I tried using the base Docker image (drupal:9.5.11-php8.1-fpm), I got the same error message when running the NPM command because NPM is not available from the base Docker image.

+ npm --version
bash: npm: command not found

Regards,
Mark C

Amit Sharma
October 15, 2023

Yes @Mark C  I am installing the npm in my script 

scripts/pipelines/setup.sh

in the above script I am installing and setting up the path of node and npm.

Also, I have checked the version. I installed the node using nvm. 

Mark C
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 18, 2023

Hi @Amit Sharma

Thanks for that.
Could we check if the NPM is still installed after running setup.sh script?

          script:
            - scripts/pipelines/setup.sh
            - npm --version
            - scripts/pipelines/validate.sh
            - scripts/pipelines/build_artifact.sh
            - scripts/pipelines/deploy_artifact.sh

You can also try installing NPM as part of the step script instead.

Let me know how it goes.

Regards,
Mark C

0 votes
Saxea _Flowie_
Atlassian Partner
October 12, 2023

Hi @Amit Sharma

Is frontend_build.sh running in a different step? If so, node cache only caches node_modules not the actual node install.

Amit Sharma
October 12, 2023

@Saxea _Flowie_  it is running inside the same step. I have added multiple scripts in the same step for reusability in other steps.

Amit Sharma
October 15, 2023

@Saxea _Flowie_  I am running the Acquia BLT command in the build.sh, which runs a post-code hook. Inside this hook, I am running the frontend-build.sh

BLT picks the path of npm installed in the current container. I have used this on the local but it is not working in Pipeline.

DEPLOYMENT TYPE
CLOUD
TAGS
AUG Leaders

Atlassian Community Events