Подтвердить что ты не робот

Npm не будет устанавливать пакеты локально. Что не так?

Я хочу устанавливать пакеты локально, но npm всегда устанавливает пакеты в глобальное местоположение. Я выполняю следующую команду:

npm install serialport

У меня нет команды .npmrc, и я не использую флаг -g, поэтому я не знаю, почему он не устанавливает локально. Здесь фрагмент из конфигурационного дампа, показывающий, что глобальное значение false:   $ npm config ls -l | Глобальный глобальный   global = false   globalconfig = "/usr/local/etc/npmrc"   globalignorefile = "/usr/local/etc/npmignore"

И пакеты все еще устанавливаются следующим образом

[email protected] ../../../../node_modules/serialport

Поэтому, если я не ошибаюсь в отношении того, что означает "локальный", это кажется неправильным. У меня создалось впечатление, что "локальный" означает в текущем рабочем каталоге, чтобы я мог "требовать" в своем основном файле кода. См. http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/, как указано в предыдущем вопросе, связанном с npm.

Может кто-нибудь, пожалуйста, дайте мне несколько советов по этому поводу? Большое вам спасибо.

P.S. Это не относится к модулю serialport. Это происходит со всеми из них.

4b9b3361

Ответ 1

Большая часть моего ответа может быть найдена: http://npmjs.org/doc/folders.html#More-Information

Я понимаю, что npm попытается установить его в разумном месте. Поэтому, если у вас есть каталог project/node_modules, и вы находитесь в /project и выполняете npm, он будет использовать product/node_modules.

Теперь, если вы случайно сделали cd project/css и установили npm, то npm будет проходить до тех пор, пока не найдет ваш каталог node_modules. Это должно помешать вам случайно установить его в project/css.

Итак, в вашем случае у вас есть каталог node_module где-то на пути вашего проекта. Поэтому я предполагаю, что вы можете исправить это, удалив этот каталог или вручную создав dir node_modules в папке проекта.

Ответ 2

Если у вас есть файл package.json в папке, которую вы пытаетесь установить, то он правильно создаст папку node_modules.

Базовый пакет .json

{
    "name": "application-name",
    "version": "0.0.1"
}