【发布时间】:2019-02-17 01:54:50
【问题描述】:
在我们的 package.json 中,我们使用文件符号来引用我们自己开发的私有模块,如下所示:
"dependencies": {
"privateX": "file:////serverName/path/to/privateX",
"privateY": "file:////serverName/path/to/privateY"
}
在 npm v4.2.0(使用 Node v7.10.1)之前,这一切正常。更新到 npm v5.5.1(使用 Node.js 8.9.0 LTS)后,我们无法再安装(npm install)它们并出现以下错误:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "..\..\serverName\path\to\privateX" as it does not contain a package.json file.
我尝试了不同的方法,例如,也没有奏效:
- “privateX”:“file://serverName/path/to/privateX”
- “privateX”:“文件:\\\\serverName\\path\\to\\privateX”
npm cache clean --force 没有帮助。
仅将依赖项放在每台服务器上并使用相对路径才有效。但这是不切实际的:
- “privateX”:“file://../../path/to/privateX”
当我们降级到 npm v4.2.0 或更低版本时,它会再次运行。自该版本导致中断对同一网络中另一台服务器的访问后发生了什么?或者,在 npm 5.x.x 及更高版本中,如何引用同一网络中另一台服务器上的依赖项?
我们的私有模块位于我们网络内的服务器上。所有服务器都在 Windows 上运行。
【问题讨论】:
标签: node.js npm dependencies local