Пакеты, установленные из admin cmd / powershell, не добавляются в PATH для обычного cmd / powershell (foo not распознано ...) - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь глобально установить пакет, который должен быть установлен из административного cmd / powershell (он использует windows-build-tools).Когда я устанавливаю его с помощью административного PowerShell, все работает нормально - установка выполняется без ошибок, и интерфейс командной строки пакета добавляется в путь:

PS C:\WINDOWS\system32> npm install -g prisma
C:\Users\XXX\AppData\Roaming\npm\prisma -> C:\Users\XXX\AppData\Roaming\npm\node_modules\prisma\dist\index.js
+ prisma@1.34.0
added 588 packages from 448 contributors and updated 1 package in 23.005s
PS C:\WINDOWS\system32> prisma --version
Prisma CLI version: prisma/1.34.0 (windows-x64) node-v10.9.0

Когда я пытаюсь получить доступ к командеИнтерфейс линии из обычного cmd / powershell, хотя имя пакета не распознается:

C:\Users\XXX>prisma --version
'prisma' is not recognized as an internal or external command,
operable program or batch file.

Что мне делать, чтобы пакеты, установленные из командной строки администратора, были доступны для обычной командной строки?

1 Ответ

2 голосов
/ 01 июля 2019

Алексей Иванов ответил на аналогичный вопрос некоторое время назад, и его ответ поможет вам здесь.В частности, следующее:

Стоит отметить, что NODE_PATH используется только при импорте модулей в приложениях Node.Если вы хотите использовать двоичные файлы глобально установленных модулей в вашем CLI, вам нужно добавить его также в вашу переменную PATH, но без части node_modules (например,% AppData% \ npm в Windows 7/8/10).

Для этого последнего бита, если ваш модуль был установлен в «% AppData% \ npm \ node_modules», ваш путь будет включать «% AppData% \ npm».

Net-net, это неПроблема с PowerShell.Это проблема с пакетом, который вы устанавливаете.

И, если вы хотите немного разобраться с созданием пакета CLI, ознакомьтесь с фрагментом Rubens Mariuzzo Руководство по созданию пакета командной строки NodeJS:

В Windows npm сделает то же самое (только если указан shebang), но также создаст {имя-команды} .cmd, которое вызывает узел для выполнения указанной команды.файл.

Под управлением Windows 10.0.17763, и я смог установить 'Prisma' через npm (6.9.0), и я могу получить к нему доступ из новых сеансов консоли.Я смог выполнить установку как из сеанса с повышенными правами, так и из невысоких с одинаковым результатом.

enter image description here

Вот как выглядит мой путь после установки:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...