我正在开发一个安装程序,在安装文件后,我们运行一个使用 NPM Link 来设置一些文件夹的脚本。
当我在虚拟机上运行该脚本时,它可以正常工作,没有任何错误/警告。当我尝试在自己的机器上运行它时,出现以下错误:
84详细节点 v9.5.0
85 详细 npm v5.6.0
86错误路径C:\Users\me\AppData\Roaming\npm\node_modules\module
87 错误代码 EEXIST
88 错误 错误号 -4075
89 错误系统调用符号链接
90 错误 EEXIST:文件已存在,符号链接 'C:\Users\me\AppData\Roaming\npm\node_modules\module' -> 目标文件夹
91 错误 文件存在:C:\Users\Me\AppData\Roaming\npm\node_modules\module
92 错误 将其移开,然后重试。
93 详细退出 [ -4075, true ]
现在我知道这个文件已经存在,我已经链接了它。但我在我的虚拟机上没有收到此错误,我在虚拟机上执行了完全相同的操作。每次链接时都需要删除node_module吗?这不可能是对的,对吧?
我已经在自己的机器上重新安装了 NodeJS。
这基本上就是我所做的:
call NPM link ..\Folder1
call NPM link ..\Folder2
call NPM link ..\Folder3
Run Code Online (Sandbox Code Playgroud)
我必须对多个文件夹执行此操作。有些文件夹需要链接所有 3 个,其他文件夹只需链接 1 个或 2 个。因此,对于我在其中执行此操作的每个文件夹,每次操作都会出现错误。它进行了链接,但我真的想消除该错误,特别是因为它可以在我的虚拟机上运行。
我已经尝试进入文件夹并调用 NPM Link (不带参数),但这似乎没有做任何事情。
小智 5
发现问题所在了。
首先,在源文件夹中运行 NPM Link(无参数)。
NPM Link
Run Code Online (Sandbox Code Playgroud)
然后在目标文件夹中运行 NPM Link module_name 。
NPM Link [module_name]
Run Code Online (Sandbox Code Playgroud)
因此,请使用 module_name 而不是位置。