Узел JS / Угловой - PullRequest
       31

Узел JS / Угловой

0 голосов
/ 01 октября 2019

Я установил Node JS, а затем импортировал существующий рабочий проект в код Visual Studio. После этого я запустил npm install в папке проекта, затем запустил npm start, и приложение подошло нормально. Однако, если я запускаю команду ng, я получаю сообщение об ошибке «ng is not valid command», хотя Angular CLI находится в папке модулей.

Я попытался установить Angular CLI вручную и установить глобально. системный путь, указывающий на папку npm, а затем команда ng работает нормально. Чего я не понимаю, так это зачем мне глобально устанавливать CLI, если я просто хочу выполнить эту команду в проекте, где модуль уже присутствует?

1 Ответ

0 голосов
/ 01 октября 2019

Как правило, вам нужно будет глобально установить любые команды, которые вы хотите использовать (без NPX). На самом деле это не ограничение NPM, а фундаментальный способ работы программ командной строки. ОС будет смотреть только в фиксированных предопределенных местоположениях, установленных в PATH. Это применимо к любому основанному на узле инструменту, такому как grunt или ng или как угодно.

(Хотя некоторые системы ищут исполняемые файлы относительно текущего рабочего каталога или могут быть настроены на это, обычно это нехороший или надежный метод, и NPM не полагается на такое поведение).

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

Однако во многих случаях вам может потребоваться запустить команду из локального проекта. Возможно, для сценария сборки или чего-то еще, где вы хотите сохранить его изолированным. В этом случае вы вместо этого добавляете к своей команде префикс npx , который будет искать команды в локальном проекте.

...