代码之家  ›  专栏  ›  技术社区  ›  xpt

NPM根目录:没有这样的文件或目录

  •  1
  • xpt  · 技术社区  · 6 年前

    什么? npm root 返回?

    我知道这是怎么做的 npm 找到 node_modules 目录:

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

    威尔 NPM根 返回相同的内容?

    我有一个 节点\模块 把目录放在更高的地方,比如说 /path/to/mynpmroot 但是当你这样做的时候 NPM根 在一个更低的地方,比如说 /path/to/mynpmroot/then/very/deep/here ,的 NPM根 给了我一条 /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 很好。

    它怎么可能发生,我怎么能修复它?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Elliot Nelson    6 年前

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

    通常,你会有一个 包.json 文件在 /myproject/package.json 运行 NPM根 /myproject/src/controllers 应该返回 /myproject/node_modules . 如果出于某种原因 包.json 文件 更接近 (在控制器文件夹中…出于某种原因),这可以解释这种行为。

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

    还要注意,如果你正在跑步 NPM前缀 从项目中的文件夹 完全没有package.json文件 ,它将只返回当前文件夹。这也可以解释你所看到的行为。

    推荐文章