Error with git cloned project

i have a project, i pushed it to gitlab and my friend pulled the project. but he can’t start the bench.
"bench start " command shows error.
it says “can’t find module socketio.js”
so just to be sure, i also cloned the project into a different directory and tried “bench start”, and for me too i have the same error.
but i can run bench start from the original project directory all fine. the error is only showing for the cloned version.
Please HELP !!!
here is the error screenshot

By project i guess you mean a custom frappe app? If so all frappe apps must be contained within a bench environment (folder).
So if your bench environment is located at the default /home/username/frappe-bench/
All your apps are located at
/home/username/frappe-bench/apps/
Here you will find frappe, erpnext and your-custom-app
No app will work outside of a bench environment

As i have mentioned in my question, i can run the project from my original directory all fine.
its just that when I try to run the cloned git repo of the same project that i pushed earlier, it shows this error.
yeah all the apps are in the bench environment. there’s no mistake in that.

What do you mean by project?

What directory have you cloned?

as in the documentation, i initialized a frappe-bench folder with the "bench init " command.
then i made a site called sitelocal with "bench " command.
after that i installed erpnext app into the site.
then i ran “bench start” command.
everything works fine.
then i initialized the frappe-bench folder with " git init " command and pushed the contents to a remote repository.
after that i cloned the repo to another directory just for experimentation and tried to run “bench start” command.
But as you can see in the pic above i got error.
why is that?
can you help please… Thank you very much for the quick replies.

The only folders you push to a remote repository are one for each of your app’s.
So you would push:
/home/username/frappe-bench/apps/erpnext
/home/username/frappe-bench/apps/frappe
/home/username/frappe-bench/apps/yourapp

The person you are sharing these repo’s with remotely will need to have installed all the bench/frappe requirements on their local system just as you had to. They would then go to /home/their-username/

bench init frappe-bench
cd /home/their-username/frappe-bench/apps
And then download your repos to their system.
/home/their-username/frappe-bench/apps/erpnext
/home/their-username/frappe-bench/apps/frappe
/home/their-username/frappe-bench/apps/yourapp

If you are not modifying either ERPNext or Frappe then you just need one repo called whatever your app is called.
Well you would need three repos but two of them will be the offical erpnext and frappe repos and one will yourcoolapp repo.

thnks for the reply. really really apprecitated.
and what about the site?
do my friend also need to make a site with the same name as i do or can i push the site too to my git repo?
i have made a site called sitelocal and installed erpnext app to the site with " bench --site install-app" command.

For working on a synced “site” with a remote team member, Ideally you would have a live (but not publicly accessible) instance running on a VM. Say on a Digital Ocean droplet. If you both only have a local version running then it gets a bit more tricky. Maybe get them to create a site with the same details as yours. Once you have your site content ready you could:
bench --site yoursitename backup
You could then make a shared git repo out of your:
/home/username/frappe-bench/sites
folder.
They would then download that repo and do something like:
bench --site yoursitename restore path/to/backup/file
Or something like that.
Not a very efficient way to team work but possible.