Избыточные зависимости в папке node_modules - PullRequest
0 голосов
/ 12 ноября 2018

У меня установлен частный модуль npm из частного репозитория github.Этот модуль зависит от модуля "axios".Поэтому в package.json я добавил его под зависимостью.

package.json частного модуля

{
  "name": "xxx",
  "version": "1.0.0",
  "description": "xxxx",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/xxxx/yyyy.git"
  },
  "keywords": [
    "xxxx"
  ],
  "author": "xxxx",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/xxx"
  },
  "homepage": "https://github.com/xxxxx#readme",
  "dependencies": {
    "axios": "latest"
  }
}

Я использую «axios» в моем «индексе».js "также, поэтому" axios "указан как зависимость в моем корневом уровне" package.json "

package.json на корневом уровне

{
  "name": "my code",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "axios": "^0.18.0",
    "xxx": "git+ssh://github.com/xxxx/yyyy.git",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

в целом"axios "указан как зависимость в моем проекте в 2 местах.Когда я выполню установку npm.«axios» устанавливается в двух местах.

  1. node_modules на корневом уровне
  2. node_modules присутствует в каталоге xxx

Вот как мой проектструктура после выполнения npm установка

Project
 |
 +-- index.js
 |    
 +-- package.json
 |    
 +-- node_modules
 |  |  
 |  +-- axios
 |  |  
 |  +-- xxx
 |  |   |
 |  |   +-- index.js
 |  |   |
 |  |   +-- package.json
 |  |   |
 |  |   +-- node_modules
 |  |   |   |
 |  |   |   +-- axios // How to avoid axios getting installed here again and make
                         it reuse the one in root level node_modules directory
...