How to upgrade existing project scaffolded with Yeoman
Asked Answered
B

1

41

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.)

Burns answered 28/8, 2013 at 5:53 Comment(1)
Have you tried running npm update -g for global packages and npm update for local packages in the project directories?Idyll
V
66

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

Villanueva answered 28/8, 2013 at 23:35 Comment(4)
Great answer! I didn't know it was smart enough to do the diff for me. Good to get authoritative answers from authoritative sources.Burns
yo <generator-name> now already run bower install & npm install i.e. no need to run them explicitly againAromatic
@MarkusGattol don't know why but bower install always fails for me on all machines. I keep run it explicitly again.Floorwalker
@Sumit this is because if bower isn't given root level permission all commands without a --allow-root will not run!Isomerize

© 2022 - 2024 — McMap. All rights reserved.