Как угловой интерфейс командной строки отстает?

#angular-cli

Вопрос:

Я работаю над школьным проектом, и у меня возникла проблема с моей угловой командой «ng», потому что она не была распознана моей системой.

 'ng' is not recognized as an internal or external command, operable program or batch file. 
 

Однако мой друг сказал мне запустить команду таким образом, и это работает волшебным образом.

 C:/Users/[userName]/AppData/Roaming/npm/ng --version
 

Я знаю, что указанный выше путь-это место, где установлен npm, но мне все еще любопытно, как он работает.

В каком файле в папке npm выполняется команда ng? Почему простая команда » ng » не работает, но работает команда полного пути, как указано выше? Какие навыки мне нужно изучить, чтобы преодолеть подобные проблемы(я бы не смог разобраться в этом без помощи моего друга)?

Ответ №1:

Скорее всего, он не запускается, потому что у вас не установлен Angular CLI, или, по второму предположению, у вас нет установки вашего узла в переменной path. В качестве теста попробуйте запустить node -v , чтобы проверить, так ли это.

Настоящая «магия» приложения заключается в том ng , что при глобальной установке Angular CLI он создает ng.bat файл в папке основного узла, который обычно находится в пути. Этот файл bat-это просто загрузчик для запуска реального углового CLI, который представляет собой просто набор файлов Javascript, как и любая программа узла (установленная в глобальной папке «node_modules»).

Короче говоря, переменная пути вместе с удобно расположенным ng.bat файлом плюс соглашение командной строки Windows, позволяющее опустить расширение файла для файлов bat, — это то, что позволяет просто использовать трюк ng ...... .

Необходимость ввода полного пути указывает на то, что переменная ПУТИ отсутствует (или установлена неправильно).

В комплекте npm идет точно такой же трюк.