npm root:没有这样的文件或目录

时间:2018-12-26 20:12:59

标签: node.js npm

npm root返回什么?

我知道npm是如何找到node_modules目录的:

  

在./node_modules目录中查找模块。如果不存在,请递归搜索父目录的./node_modules,直到找到模块或到达文件系统的根为止。

npm root是否会返回相同的内容?

我在较高的位置有一个node_modules目录,例如/path/to/mynpmroot,但是在较低的位置进行了npm root时,例如/path/to/mynpmroot/then/very/deep/here,则{{1 }}为我提供了npm root的路径。

正常吗?因为当我做/path/to/mynpmroot/then/very/deep/node_modules时,我会得到:

ls /path/to/mynpmroot/then/very/deep/node_modules

这让我很烦。但是我需要照顾吗? (因为在ls: /path/to/mynpmroot/then/very/deep/node_modules: No such file or directory 中运行节点脚本就可以了)。

它怎么会发生,我该如何解决?

1 个答案:

答案 0 :(得分:1)

npm root使用npm prefix返回的文件夹,该文件夹搜索最近的package.json文件。

通常,您在package.json中将有一个/myproject/package.json文件;从npm root运行/myproject/src/controllers应该返回/myproject/node_modules。如果出于某种原因,您有一个package.json文件 closer (由于某些原因,在您的controllers文件夹中...),则可以解释该行为。

这正在使用npm v6.0 +;如果您看到不同的行为,请确保提及您使用的版本(npm -v)。

还请注意,如果您从项目中的文件夹运行npm prefix,而根本没有任何package.json文件,它将仅返回当前文件夹。这也可以解释您所看到的行为。