npm install导致'ENOENT:没有这样的文件或目录'

Ale*_*ere 10 node.js npm

我已经为Windows安装了Node.js,我正在尝试通过npm安装一个软件包.命令提示符位于项目目录中(C:\ Users\username\Desktop\NodeTest),其中包含一个helloworld.js文件.输入'npm install express'后,我收到以下错误:

ENOENT: no such file or direcotry, open 'C:\Users\username\package.json

我正在尝试从干净的安装和cmd作为管理员运行.

有任何想法吗?

Chr*_*ris 10

如果您在使用 Vagrant/VM 的 Windows 机器上工作,则符号链接可能是导致您问题的罪魁祸首。要确定是否是这种情况,只需将您的package.json和复制package-lock.json到未在操作系统之间安装/共享的测试目录中。

mkdir /tmp/symlinktest
cd {{your directory with your package*.json}}
cp package*.json /tmp/symlinktest
cd /tmp/symlinktest
npm install
Run Code Online (Sandbox Code Playgroud)

如果这导致安装成功,您需要node_modules从挂载中排除该目录(有各种关于执行此操作的文章,但我不能说我已经成功)或npm install在挂载的卷之外运行。

  • 这是一个完美的例子,说明即使问题不包含边缘情况(流浪者),SO 答案也能提供帮助。谢谢。 (3认同)

小智 7

我删除了 package-lock.json 它对我有用。


DAX*_*lic 6

正如Subburaj所指出的,这是因为您缺少一个package.json
只需运行npm init即可为您初始化该文件;之后它应该工作。

  • 或者您所在的目录与 *package.json* 所在的目录不同。 (2认同)

小智 5

我面临着同样的问题。我首先删除我的node_modules并通过以下命令删除缓存:

rm -rf node_modules rm -rf node_modules && npm cache clean --force
Run Code Online (Sandbox Code Playgroud)

然后我package-lock.json从项目中删除该文件,然后npm install在命令提示符下运行,它可以正常工作。

  • 删除package-lock.json是关键。谢谢 (2认同)