我已经通过命令行全局安装了两个npm包"download"one_answers"enigmavirtualbox":
npm install -g download
和npm install -g engimavirtualbox
我正试图在批处理文件中使用它们来捆绑我的节点项目中的单个.exe文件。对于两者,命令npm list -g <packagename>
分别产生版本输出,与当前工作目录无关。
但是,在我的批处理脚本中找不到命令"download"one_answers"enigmavirtualbox"。
运行npm root -g
生成C:Users<username>AppDataRoamingnpmnode_modules
,在该文件夹中查看,我可以看到两个包的文件夹都存在。
我尝试过的:
- 按此处所述更改
npm root
- 卸载并重新安装程序包
- 添加环境。指向
C:Users<username>AppDataRoamingnpmnode_modules
的变量NODE_PATH - 将
C:Users<username>AppDataRoamingnpmnode_modules
添加到PATH环境中。变量
同样的设置在我的第二台计算机上运行(都运行Win7 64位)。我的节点安装有问题吗?或者我做错了什么?
可执行二进制文件和.cmd文件最终位于C:Users<username>AppDataRoamingnpm
中(减去末尾的node_modules
),因此将该路径添加到path环境中。variable解决了这个问题。
对于环境变量,路径可以缩写为:%appdatanpm
。
如果上述方法不起作用,则使用此命令显式设置路径
npm config set prefix c:/Users/<username>/AppData/Roaming/npm
只需运行此命令
SET PATH=%AppData%npm;%PATH%
简短回答:将%APPDATA%npm
添加到PATH
环境变量中。
长话短说:
npm将.cmd
文件保存在C:Users%username%AppDataRoamingnpm
目录中(%username%
是当前用户的用户名),当您从npm包执行命令时(所有操作都正常),该文件将被执行。
因为用户配置文件不一定在C:Users
内部,所以最好使用一个变量,如指向当前用户的用户配置文件的%userprofile%
或指向当前用户用户配置文件内部AppDataRoaming
的%APPDATA%
。
通过将CCD_ 21添加到CCD_。如果当前目录中不包含具有该名称的文件,则变量windows会自动在其中搜索具有您作为命令输入的名称的文件。
对于每个命令,npm文件夹中也有一个没有后缀的文件,这是一个bash脚本,在Windows上不起作用(如果你不使用bash),但Windows会先找到.cmd
文件,所以你不必担心。
将PATH
环境变量设置为C:UsersYOUR_USERNAMEAppDataRoamingnpm
。这帮我搞定了。
此处提供有关此主题的更多信息:https://medium.com/@alberto.schiabel/npm-ticks-part-1-get-list-of-globally-installed-packages-39a240347ef0
已在全球范围内安装的软件包列表
npm list -g --depth 0
适用于仍有丢失命令问题的用户。我已经处理了几个星期了,几乎放弃了在窗户上发展的希望。然后运行npm config list
并发现:
; userconfig C:Usersdeane.npmrc
bin-links = false
需要把它变成真的。即使卸载和重新安装也无济于事,因为它会保留你的.npmrc文件。
为了在windows上使用npm install -g package-name
,我们需要如上所述配置env变量。但是,如果您不想配置env变量,那么您可以使用yarn。如果你已经安装了纱线,那么运行
纱线全局添加包名称
如果你还没有安装yarn,那么你可以从这里安装通过MSI安装程序在Windows上安装Yarn