繁体   English   中英

已安装全局 NPM 包但未找到命令

[英]Global NPM package installed but command not found

我已经通过命令行全局安装了两个 npm 包“download”“enigmavirtualbox”

npm install -g downloadnpm install -g engimavirtualbox

我正在尝试在批处理文件中使用它们来捆绑我的节点项目中的单个 .exe 文件。 对于这两者,命令npm list -g <packagename>产生各自的版本输出,独立于当前工作目录。

但是,在我的批处理脚本中找不到命令“下载”和“enigmavirtualbox”。

运行npm root -g产生C:\Users\<username>\AppData\Roaming\npm\node_modules并查看该文件夹,我可以看到两个包的文件夹都存在。

我试过的:

  • 如此所述更改npm root
  • 卸载并重新安装软件包
  • 添加环境。 变量 NODE_PATH 指向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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM