Почему в моей домашней папке есть папка node_modules? - PullRequest
0 голосов
/ 27 ноября 2018

У меня уже есть глобальная папка node_modules в / usr / local / lib / node_modules, но я только что обнаружил, что также есть папка ~ / node_modules под моим домашним floder.Могу ли я удалить этот файл?

Я выполняю node -e "console.log(global.module.paths)" и получаю

[ '/Users/Username/node_modules',
'/Users/node_modules',
 '/node_modules' ]

И если я удаляю папку node_modules, которая находится в домашнем каталоге, то я выполняю npm list @vue/cli-ui, ЭтоБудет ли эта ошибка:

/Users/Username
└── UNMET DEPENDENCY @vue/cli-ui@3.0.1 
npm ERR! missing: @vue/cli-ui@3.0.1, required by Username

Итак, я могу удалить foleder node_modules из моего домашнего каталога?Какая от этого польза?Или мне нужно переустановить узел и npm?

И если я удаляю эту папку, при выполнении npm ls я получаю следующие ошибки:

/Users/Username
├─┬ UNMET DEPENDENCY @vue/cli-ui@3.0.1
│ ├─┬ UNMET DEPENDENCY @akryum/winattr@3.0.0
│ │ └── UNMET DEPENDENCY fswin@2.17.1227
│ ├─┬ UNMET DEPENDENCY @vue/cli-shared-utils@3.0.1
│ │ ├── UNMET DEPENDENCY chalk@2.4.1
│ │ ├── UNMET DEPENDENCY execa@0.10.0
│ │ ├─┬ UNMET DEPENDENCY joi@13.6.0
│ │ │ ├── UNMET DEPENDENCY hoek@5.0.4

Как решить эту проблему?

Теперь все в порядке после выполнения npm cache verify

1 Ответ

0 голосов
/ 27 ноября 2018

module.paths - пути, по которым NodeJS ищет пакеты NPM;и на самом деле не выполняет поиск в вашем глобальном каталоге NPM, как вы можете видеть.

Более подробная информация здесь https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders и здесь https://nodejs.org/api/modules.html#modules_all_together.

Вы видите эти пути, потому что вы выполняете node -e ..., когда находитесь в домашнем каталоге, NodeJS просто пересекает все node_modules пути к корню.

[ '/Users/Username/node_modules', '/Users/node_modules', '/node_modules' ]

Относительно вашеговопрос: ДА вы можете удалить ~/node_modules;вероятно, это потому, что вы один раз написали npm i MODULE без -g флага и ваш cwd был ~.

...