I was thinking about this a lot. We actually don't need the full `package.json`. We should use something similar to `packages.json` used my npm smart package.

And we should maintain absolute versions for the packages, with that we can check if we need to do an upgrade to the package, we can do it too. 
With the current logic, (since we are installing only once) user might have updated the package.json but that version won't be available if he has installed them manually. 

* With this suggested logic - user needs to update the version numbers manually every time if he needs a new version
* Alternate would be to allow user to use semvar(still using `packages.json`) and we can add new command saying `laika --update-npm`. If then we should not install automatically: just a thought.

Both have pros and cons. What method do you prefer?