[英]Global NPM package installed but command not found
我已经通过命令行全局安装了两个 npm 包“download”和“enigmavirtualbox” :
npm install -g download
和npm install -g engimavirtualbox
我正在尝试在批处理文件中使用它们来捆绑我的节点项目中的单个 .exe 文件。 对于这两者,命令npm list -g <packagename>
产生各自的版本输出,独立于当前工作目录。
但是,在我的批处理脚本中找不到命令“下载”和“enigmavirtualbox”。
运行npm root -g
产生C:\Users\<username>\AppData\Roaming\npm\node_modules
并查看该文件夹,我可以看到两个包的文件夹都存在。
我试过的:
npm root
C:\Users\<username>\AppData\Roaming\npm\node_modules
C:\Users\<username>\AppData\Roaming\npm\node_modules
到 PATH 环境。 多变的相同的设置适用于我的第二台计算机(均运行 Win7 64 位)。 我的节点安装有问题,还是我做错了什么?
可执行二进制文件和 .cmd 文件最终位于C:\\Users\\<username>\\AppData\\Roaming\\npm
(减去末尾的node_modules
),因此将该路径添加到 PATH 环境中。 变量解决了这个问题。
如果上述方法不起作用,则使用此命令显式设置路径
npm config set prefix c:/Users/<username>/AppData/Roaming/npm
这里有关于这个话题的更多信息: https : //medium.com/@alberto.schiabel/npm-tricks-part-1-get-list-of-globally-installed-packages-39a240347ef0
已全局安装的软件包列表
npm list -g --depth 0
将您的PATH
环境变量设置为C:\\Users\\YOUR_USERNAME\\AppData\\Roaming\\npm
。 这为我修好了。
只需运行此命令
SET PATH=%AppData%\npm;%PATH%
简短回答:将%APPDATA%\\npm
添加到PATH
环境变量。
长答案:
npm 将.cmd
文件保存在C:\\Users\\%username%\\AppData\\Roaming\\npm
目录( %username%
是当前用户的用户名)。
因为C:\\Users
不一定在C:\\Users
内,所以最好使用像%userprofile%
这样的变量指向当前用户的用户配置文件或%APPDATA%
指向当前用户的用户配置文件内的AppData\\Roaming
。
通过将%APPDATA%\\npm
添加到环境中。 如果当前目录不包含具有该名称的文件,变量 windows 会自动在其中搜索具有您作为命令输入的名称的文件。
对于每个命令,在 npm 文件夹中还有一个没有后缀的文件,它是一个 bash 脚本,无法处理batch
文件,但 Windows 首先找到.cmd
文件,因此您不必担心。
对于仍然遇到缺少命令问题的任何人。 我已经处理了几个星期,几乎放弃了在 Windows 上开发的希望。 然后运行npm config list
并发现:
; userconfig C:\Users\deane\.npmrc
bin-links = false
需要将其更改为true。 即使卸载并重新安装也无济于事,因为它会保留您的 .npmrc 文件。
为了在 Windows 上使用“npm install -g package-name”,我们需要如上所述配置 env 变量。 但如果你不想配置环境变量,那么你可以使用 yarn。 如果你已经安装了纱线然后运行
yarn 全局添加包名
如果您还没有安装 yarn,那么您可以从这里安装 Install Yarn on Windows via MSI Installer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.