npm root: нет такого файла или каталога - PullRequest
0 голосов
/ 26 декабря 2018

Что возвращает npm root?

Я знаю, что npm находит каталог node_modules:

Найдите модуль в каталоге ./node_modules.Если его там нет, рекурсивно ищите в родительских каталогах './node_modules, пока либо не будет найден модуль, либо не будет достигнут корень файловой системы.

Будет ли npm root возвращать то же самое?

У меня есть каталог node_modules в более высоком месте, скажем /path/to/mynpmroot, но когда я выполняю npm root в гораздо более низком месте, скажем /path/to/mynpmroot/then/very/deep/here, npm root дает мне путь/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

Это меня раздражает.но мне нужно заботиться?(так как работающие скрипты узла в /path/to/mynpmroot/then/very/deep/here просто отлично)

Как это могло произойти и как я могу это исправить?

1 Ответ

0 голосов
/ 26 декабря 2018

npm root использует папку, возвращаемую npm prefix, которая ищет ближайший package.json файл.

Обычно у вас будет package.json файл в /myproject/package.json;выполнение npm root из /myproject/src/controllers должно вернуть /myproject/node_modules.Если по какой-то причине у вас есть package.json файл ближе (в вашей папке контроллеров ... по какой-то причине), это объясняет поведение.

Это использует npm v6.0+;если вы видите другое поведение, обязательно укажите, какую версию вы используете (npm -v).

Также обратите внимание, что если вы запускаете npm prefix из папки в проекте без пакетаФайл .json вообще , он вернет только текущую папку.Это также объясняет поведение, которое вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...