How to upgrade existing project scaffolded with Yeoman

mgnb picture mgnb · Aug 28, 2013 · Viewed 8.7k times · Source

I used generator-angular a few months ago to scaffold a project and the whole ecosystem (karma, Node versions, grunt packages) has moved on quite significantly. I keep running into problems running tests, building things, and so on.

I know I can use nvm to downgrade my Node version and install older packages, but that kind of sucks, especially when there are many developers on the team. I have used the generators for 10+ projects over the past few months so I'm very interested in a solution.

Is there a recommended upgrade path for when new versions of generators are released, apart from just regenerating the project and copying files across?

(Just to note: this isn't a problem with upgrading a Yeoman 0.9 project.)

Answer

Sindre Sorhus picture Sindre Sorhus · Aug 29, 2013

First make sure you have committed everything or have a backup, then just scaffold out over the project again. yo will ask you for each file if you want to overwrite. For those files you haven't edited, just say yes. For the other ones, type d for diff and see what's changed. Then manually do the changes, and run npm install & bower install to get the latest dependencies.

EDIT

As mentionned in comments by Markus Gattol :

yo <generator-name> now already run bower install & npm install i.e. no need to run them explicitly again – Markus Gattol