I found a lot of tutorials say anyone who creates dapps needs to use Node Package Manager (NPM).
And the reason why it is necessary is because nodejs console is used for interacting with the contract on the blockchain.
But why do we need nodejs for smart contract? Smart contract is not written by JS but solidity.
Could anyone please simply explain why and for what purpose we need to use npm?