我正在尝试全局安装必须从管理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.
如何确保常规命令行可以访问从管理员命令行安装的软件包?
答案 0 :(得分:2)
Alexey Ivanov不久前回答了类似的问题,his answer会在这里为您提供帮助。具体来说,以下内容:
值得一提的是,NODE_PATH仅在导入时使用 节点应用中的模块。当您想使用全局安装的模块时 您的CLI中的二进制文件也需要将其添加到PATH中,但没有 node_modules部分(例如Windows 7/8/10中的%AppData%\ npm)。
最后一点,如果您的模块安装在“%AppData%\ npm \ node_modules”中,则路径将包括“%AppData%\ npm”。
网络,这不是Powershell问题。这与您要安装的软件包有关。
并且,如果您想对创建CLI软件包有一点了解,请查看Rubens Mariuzzo A guide to creating a NodeJS command-line package的文章:
在Windows上,npm将执行相同操作(仅当shebang为 指定),但还会创建一个{command-name} .cmd来调用节点 执行我们指定的命令文件。
运行Windows 10.0.17763,我可以通过npm(6.9.0)安装“ prisma”,并且可以从新的控制台会话访问它。我能够从提升的和不提升的会话中进行安装,并且结果相同。
这是安装后我的路径: