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

为什么npm在不同的目录中安装软件包?

npm
  •  1
  • Reynicke  · 技术社区  · 7 年前

    我有几个使用公共核心代码库的项目。该核心位于子目录中,并定义了它自己的npm依赖项。在项目中,我希望安装特定于项目的npm包以及核心的依赖项,如下所示:

    /package.json

    {
      "dependencies": {
        "core": "file:./core",
        "es6-promise": "~4.2.2",
        "url-search-params-polyfill": "^2.0.3"
      }
    }
    

    npm install 所有的包裹都来自 ./package.json ./core/package.json 安装了,但发生了两件奇怪的事情:

    1. ./core/node_modules 而不是 ./node_modules

    2. package-lock.json 是否已存在引发以下错误的错误:

      npm ERR! path /proj/core/node_modules/jest-cli/node_modules/node-notifier
      npm ERR! code ENOENT
      npm ERR! errno -2
      npm ERR! syscall rename
      npm ERR! enoent ENOENT: no such file or directory, rename '/proj/core/node_modules/jest-cli/node_modules/node-notifier' -> '/proj/core/node_modules/jest-cli/node_modules/.node-notifier.DELETE'
      npm ERR! enoent This is related to npm not being able to find a file.
      

    删除锁文件有帮助,但不是一个好的解决方案。我运行的版本是:node 8.11,npm 5.6.0

    我想知道为什么npm会这样,安装在两个不同的目录中。我认为,理解这一点也能解决另一个问题。

    0 回复  |  直到 7 年前