Обычно люди всегда используют глобальную установку. Однако это может привести к несоответствиям со старыми проектами.
Версии в вашем package.json
всегда должны быть совместимы.
Чтобы убедиться, что вы используете локальную версию, сделайте следующее:
npm run -- ng generate component foo
Вместо этого:
ng generate component foo
Тогда он всегда будет использовать локальную версию.
Пряжа пропускает все параметры, поэтому не нуждается в уродливой аннотации:
yarn run ng generate component foo
Хорошим примером этого является, например, Как Angular справляется со службой DI.
Принимая во внимание, что в предыдущих версиях необходимо было добавлять каждую службу в модуль приложения в качестве поставщика.
Это было изменено в версии 6, так что на самом деле это действительно актуально:
В v6 и более поздних версиях Angular декоратор @Injectable
был расширен с возможностью, которая привела к другому шаблону:
До:
@Injectable()
После того, как:
@Injectable({
providedIn: 'root'
})
Тем самым устраняется необходимость добавления всех служб в модуль приложения в приложении.
Таким образом, при создании службы из CLI v6 был создан шаблон, несовместимый с v5.