什么? npm root 返回?
npm root
我知道这是怎么做的 npm 找到 node_modules 目录:
npm
node_modules
在./node_modules目录中查找模块。如果不存在,则在父目录/节点模块中递归搜索,直到找到模块或到达文件系统的根目录。
威尔 NPM根 返回相同的内容?
NPM根
我有一个 节点\模块 把目录放在更高的地方,比如说 /path/to/mynpmroot 但是当你这样做的时候 NPM根 在一个更低的地方,比如说 /path/to/mynpmroot/then/very/deep/here ,的 NPM根 给了我一条 /path/to/mynpmroot/then/very/deep/node_modules .
节点\模块
/path/to/mynpmroot
/path/to/mynpmroot/then/very/deep/here
/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
ls: /path/to/mynpmroot/then/very/deep/node_modules: No such file or directory
这让我很烦。但我需要关心吗? (作为在中运行节点脚本 /路径/到/mynpmroot/then/very/deep/here 很好。
/路径/到/mynpmroot/then/very/deep/here
它怎么可能发生,我怎么能修复它?
npm root 使用返回的文件夹 npm prefix ,搜索最近的 package.json 文件。
npm prefix
package.json
通常,你会有一个 包.json 文件在 /myproject/package.json 运行 NPM根 从 /myproject/src/controllers 应该返回 /myproject/node_modules . 如果出于某种原因 包.json 文件 更接近 (在控制器文件夹中…出于某种原因),这可以解释这种行为。
包.json
/myproject/package.json
/myproject/src/controllers
/myproject/node_modules
这是使用 npm V6.0+;如果您看到的是不同的行为,请确保提到您正在使用的版本( npm -v )
npm -v
还要注意,如果你正在跑步 NPM前缀 从项目中的文件夹 完全没有package.json文件 ,它将只返回当前文件夹。这也可以解释你所看到的行为。
NPM前缀